Ios 在导航控制器后面传递数据
嗨,我有4个视图控制器 MainVC-->NavBar-->MyViewController-->UIWebView 在我基于segue的MainVC中,我想为tableview控制器设置不同的数据。这是我的预考方法Ios 在导航控制器后面传递数据,ios,swift,uinavigationcontroller,Ios,Swift,Uinavigationcontroller,嗨,我有4个视图控制器 MainVC-->NavBar-->MyViewController-->UIWebView 在我基于segue的MainVC中,我想为tableview控制器设置不同的数据。这是我的预考方法 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { var navController = segue.destinationViewController as UIN
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var navController = segue.destinationViewController as UINavigationController
var HVController = navigationController?.viewControllers[0] as MyViewController
HVController.somevar = "Something"
}
然而,程序崩溃了。如何将数据从MainVC传递到MyViewController?谢谢
编辑:我发现了我的愚蠢错误代码应该是
var HVController = navController.viewControllers[0] as MyViewController
很抱歉浪费您的时间。首先,您必须在目标ViewController(MyViewController)中添加一个变量 例如:
var passValue:String!
然后,可以将值从当前ViewController传递到目标:
if segue.identifier == "yourSegueIdentifier" {
(segue.destinationViewController as MyViewController).passValue = yourObjectToPass
}
你能发布崩溃日志吗?它只是在var HVController=navigationController?.viewControllers[0]作为MyViewController行停止,并说线程1:EXC_BAD_指令……
UIWebView
是一个视图,而不是视图控制器。@meansteacher在控制台中出现了什么吗?我真蠢!我必须使用var HVController=navController.viewControllers[0]作为我的viewcontroller为什么我定义了一些东西而不使用它。抱歉浪费你们的时间,伙计们。