通过传递数据。导航控制器
Posted
技术标签:
【中文标题】通过传递数据。导航控制器【英文标题】:pass data via. navigationController 【发布时间】:2014-10-06 18:24:34 【问题描述】:我正在尝试将数据传递给 viewController。问题在于它嵌入在一个导航控制器中并且以模态方式呈现。如何传递给以模态方式呈现并嵌入在导航控制器中的 viewController
func offerNew(sender: UIBarButtonItem)
let offerVC = self.storyboard?.instantiateViewControllerWithIdentifier("OfferViewController") as UINavigationController
self.presentViewController(offerVC, animated: true, completion: nil);
我试过了
let offerVC = self.storyboard?.instantiateViewControllerWithIdentifier("offerNavigation") as UINavigationController
let targetVC = offerVC.topViewController as OfferViewController
self.presentViewController(targetVC, animated: true, completion: nil);
【问题讨论】:
【参考方案1】:我假设 offerVC 是嵌入了“目标”视图控制器的 navigationController。如果是这样,您的目标视图控制器可以通过 offerVC 的topViewController
属性访问。所以
let targetVC = offerVC.topViewController as TargetViewController
会给你一个参考。然后,您可以访问目标视图控制器的属性。
编辑
但你应该出示 OfferVC - 它会自动显示 targetVC。
self.presentViewController(offerVC, animated: true, completion: nil);
【讨论】:
应用程序试图以模态方式呈现一个活动控制器 你是在展示targetVC,还是offerVC? 我正在展示targetVC 您应该出示 OfferVC。它将自动呈现 targetVC。如果你想预先设置任何属性,你只需要 targetVC。【参考方案2】:您可以将属性添加到您的OfferViewController
,然后分配它。您的视图初始化代码将在 loadView
中完成,直到 presentViewController 之后才会调用,因此在大多数情况下,在 init
期间没有它应该不是问题。
【讨论】:
以上是关于通过传递数据。导航控制器的主要内容,如果未能解决你的问题,请参考以下文章