2016-10-18 30 views
0

有什麼方法可以在不使用函數instantiateViewController(withIdentifier: String)的情況下訪問UIViewController。我必須從另一個UIViewController中調用功能tableView.ReloadData(),我已經轉換到使用show segue,因此我不想再次初始化UIViewController使用storyboardID訪問UIViewController而不實例化

謝謝。

回答

1

您可以通過UINavigationController堆棧訪問。讓我們說,如果是前一個控制器,可以使用總viewcontrollers(堆棧)減去二訪問

let previousController = self.navigationController?.viewControllers[(self.navigationController?.viewControllers.count)! - 2] as! YourViewController 

更簡化

let controllerIndex = (self.navigationController?.viewControllers.count)! - 2 
let previousController = self.navigationController?.viewControllers[controllerIndex] as! YourViewController 
+0

謝謝你,你的答案的工作!唯一的問題是硬編碼值2,因爲索引不太優雅。例如,如果添加了另一箇中間的'UIViewController',則必須將該值更新爲3.但是對於我的實現來說,這足夠用於「開發者」視圖:)乾杯! – Frederik

+1

太好了,只要注意你可以循環瀏覽控制器並找到匹配的 – xmhafiz