你好我想将值传递给我的第二个Controller。第二个Controller连接到NavigationController,故事板ID已经在NavigationController中设置,而不是在SecondViewController中设置
我显示像这样的ViewControllers
var _profile : UINavigationController{
get{
return self.storyboard?.instantiateViewControllerWithIdentifier("ShowUserProfileTableViewController") as! UINavigationController
}
}
case 0:
if (self.revealViewController().frontViewController.isKindOfClass(UINavigationController)){
let nav : UINavigationController = self.revealViewController().frontViewController as! UINavigationController
if (!nav.viewControllers[0].isKindOfClass(ShowUserProfileTableViewController)){
self.revealViewController().setFrontViewController(self._profile, animated: true)
}
}
else{
self.revealViewController().setFrontViewController(self._profile, animated: true)
}
break
答案 0 :(得分:0)
最简单的方法是使用segues并实现prepareForSegue
,如下所示:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "ShowSecondViewController" {
let navigationController = segue.destinationViewController as! UINavigationController
let targetViewController = navigationController.viewControllers.first as! SecondViewController
targetViewController.someString = "foo"
}
}
现在,假设
ShowSecondViewController
; SecondViewController
;和SecondViewController
有一些名为someString
的属性。显然,相应地更改这些标识符,类和属性名称,但这是基本方法。并且您要么以编程方式调用performSegueWithIdentifier
,要么只是在某个UI控件和下一个场景(导航控制器)之间有一个segue。