UIViewController 在 XCode 中不再有成员 topViewController 或 viewControllers 7
UIViewController no longer has members topViewController or viewControllers in XCode 7
更新到 XCode 7 并将我的项目转换为最新的 Swift 2 语法后,有一个错误我似乎无法修复。我有一个导航控制器的 segue,需要将数据传递到其堆栈中的顶视图控制器。到目前为止,以下一直有效:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let destinationVC = segue.destinationViewController.viewControllers[0] as! MYViewController
// OR let destinationVC = segue.destinationViewController.topViewController as! MYViewController
// ...
}
但是现在编译器报错:
Value of type 'UIViewController' has no member 'viewControllers'
要么
Value of type 'UIViewController' has no member 'topViewController'
我不知道还有什么方法可以访问堆栈上的视图控制器。有任何想法吗?提前致谢!
在 segue.destinationViewController
之后添加 as! UINavigationController
以便转换为 UINavigationController
class 类型。
let destinationVC = (segue.destinationViewController as! UINavigationController).viewControllers[0] as! MYViewController
或者
let destinationVC = (segue.destinationViewController as! UINavigationController).topViewController as! MYViewController
更新于 Swift 3 (Xcode 8) 至
let dvc = (segue.destination as! UINavigationController).viewControllers[0] as! MyViewController
或viewControllers[0]
可以替换为topViewController
更新到 XCode 7 并将我的项目转换为最新的 Swift 2 语法后,有一个错误我似乎无法修复。我有一个导航控制器的 segue,需要将数据传递到其堆栈中的顶视图控制器。到目前为止,以下一直有效:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let destinationVC = segue.destinationViewController.viewControllers[0] as! MYViewController
// OR let destinationVC = segue.destinationViewController.topViewController as! MYViewController
// ...
}
但是现在编译器报错:
Value of type 'UIViewController' has no member 'viewControllers'
要么
Value of type 'UIViewController' has no member 'topViewController'
我不知道还有什么方法可以访问堆栈上的视图控制器。有任何想法吗?提前致谢!
在 segue.destinationViewController
之后添加 as! UINavigationController
以便转换为 UINavigationController
class 类型。
let destinationVC = (segue.destinationViewController as! UINavigationController).viewControllers[0] as! MYViewController
或者
let destinationVC = (segue.destinationViewController as! UINavigationController).topViewController as! MYViewController
更新于 Swift 3 (Xcode 8) 至
let dvc = (segue.destination as! UINavigationController).viewControllers[0] as! MyViewController
或viewControllers[0]
可以替换为topViewController