我必须编写一个支持iOS 7和8的iOS应用程序,在这个应用程序中我有两个带有导航控制器的视图控制器A和B以及它们之间的segue。当segue激活时,我必须从视图控制器A获取数据到视图控制器B.我的代码在iOS 8上完美运行,但在iOS 7上没有。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
if segue.identifier == userDataSegue {
let navController = segue.destinationViewController as? UINavigationController
if let userDataTableViewController = navController?.topViewController as? UserDataTableViewController {
userDataTableViewController.userData = user
}
}
}
您知道为什么会发生这种情况,我该如何解决?我可以"解决问题"通过在NSUserDefaults中保存东西并在vc B中读取它来解决问题,但这会使我的代码变得混乱。
我感谢任何帮助:D
答案 0 :(得分:2)
不要忘记在Second ViewController中创建公共属性userData。
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!)
{
if (segue.identifier == "segueTest") {
var svc = segue!.destinationViewController as secondViewController;
svc.userData = user
}
}