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