我正在为我的应用程序实现一个搜索界面,因此基本上我会将搜索关键字从一个 ViewController 传递到另一个 ViewController。
我已经多次进行过这种类型的参数传递,但这次似乎有些奇怪。目标 ViewController 嵌入在导航控制器中。
现在代码看起来像这样。
override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject!) {
if (segue?.identifier == "home_to_search") {
var searchKeyword = txtSearchBarHome.text
var svc = segue?.destinationViewController as! SearchViewController;
svc.toPassSearchKeyword = searchKeyword;
//let nav = segue?.destinationViewController as! UINavigationController
//let svc = nav.topViewController as! SearchViewController
//svc.toPassSearchKeyword = searchKeyword;
}
}
我已经探索过这些问题DestinationViewController Segue 和 UINavigationController swift https://stackoverflow.com/questions/28573635/destinationviewcontroller-segue-and-uinavigationcontroller-swift, 当我的 ViewController 嵌入到 UINavigationController 中时,如何对值进行排序? https://stackoverflow.com/questions/29641325/how-do-i-segue-values-when-my-viewcontroller-is-embedded-in-an-uinavigationcontr没有运气。
让我想知道的是,我已经将 ViewController 嵌入到导航控制器中,我可以通过 Segueing 传递参数。然而,在这种情况下它会抛出一个无法转换“UINavigationController”类型的值错误。如果我尝试上面的注释代码,它不会在那里抛出错误,但在应用程序代理 class.
回答我自己的问题。在这种情况下,我们需要通过执行以下操作来访问子视图:
let nav = segue?.destinationViewController as! UINavigationController
let svc = nav.topViewController as! SearchViewController
svc.toPassSearchKeyword = searchKeyword;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)