2017-05-07 52 views

回答

3

你有兩個選擇,第二個選項是更好的設計。

第一種選擇:(你想要的)

我不知道你的視圖控制器的結構,所以讓我假設你有一個根視圖控制器,你可以從AppDelegate通過得到它:

rootVC = self.window?.rootViewController 

如果你想從根視圖控制器呈現視圖控制器(如許多應用程序,所提出的視圖控制器是一個標籤欄控制器):

guard let tabBarController = rootVC.presentedViewController as? TabBarController else { 
     return 
} 

一旦你的標籤欄控制器,你可以找到視圖控制器的陣列中的視圖控制器:

tabBarController.viewControllers 

從本質上講,我想說的是,你必須通過你的視圖控制器開始跳從根到達你想要的控制器,然後從那裏獲取變量。這很容易出錯,一般不推薦。

第二個選項(更好的做法):

讓你的視圖控制器寄存器作爲UIApplicationWillResignActiveNotification通知的觀察員。這將允許您在應用即將進入後臺時從視圖控制器執行任何您想要的操作。

相關問題