2015-09-22 58 views
4

更新到XCode 7並將我的項目轉換爲最新的Swift 2語法後,出現了一個我似乎無法修復的錯誤。我有一個導航控制器的segue,需要將數據傳遞給堆棧中的頂部視圖控制器。下面一直工作至今:UIViewController不再具有XCode 7中的topViewController或viewControllers成員

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'

我不明白怎麼回事,以訪問視圖控制器(或多個)堆棧。有任何想法嗎?提前致謝!

回答

9

as! UINavigationControllersegue.destinationViewController這樣投到UINavigationController類的類型。

let destinationVC = (segue.destinationViewController as! UINavigationController).viewControllers[0] as! MYViewController 

或者

let destinationVC = (segue.destinationViewController as! UINavigationController).topViewController as! MYViewController 
1

在夫特3(Xcode中8)更新到

let dvc = (segue.destination as! UINavigationController).viewControllers[0] as! MyViewController 

viewControllers[0]可以與topViewController

被取代
相關問題