我必须编写一个同时支持 iOS 7 和 8 的 iOS 应用程序,在这个应用程序中,我有两个 View Controller A 和 B,带有导航 Controller ,它们之间有一个 segue。当 segue 激活时,我必须从 View Controller A 获取数据到 View Controller 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
最佳答案
不要忘记在第二个 ViewController 中创建公共(public)属性 userData。
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!)
{
if (segue.identifier == "segueTest") {
var svc = segue!.destinationViewController as secondViewController;
svc.userData = user
}
}
关于ios - prepareForSegue 无法在 iOS 7 上获取目标 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30116047/