【发布时间】:2015-05-08 04:55:31
【问题描述】:
我必须编写一个同时支持 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
【问题讨论】:
-
userDataSegue是什么? -
这是什么转场?一个模态的?因为如果它是“常规”推送 segue,destinationviewcontroller 应该是 userdatatableviewcontroller 而不是另一个导航控制器。奇怪的是你说它适用于 ios8...
-
@AndreSlotta 另一个视图控制器是一个嵌入了导航控制器的常规视图控制器。它确实适用于 iOS 8。
-
@rodrigoalves 但它是什么样的转场?模态的?推?
-
好的。在这种情况下,您应该直接转到 userDataTableViewController 而不是嵌入到 NavigationController 中...
标签: ios swift uiviewcontroller uistoryboardsegue