進入前臺,我只有一個GalleryViewController
爲UIViewController
。
它由故事板加載。
我想打電話的時候,iOS中
我想在AppDelegate.m
中調用我的GalleryViewController
的方法。
但我不AppDelegate.m
有我GalleryViewController
參考。
進入前臺,我只有一個GalleryViewController
爲UIViewController
。
它由故事板加載。
我想打電話的時候,iOS中
我想在AppDelegate.m
中調用我的GalleryViewController
的方法。
但我不AppDelegate.m
有我GalleryViewController
參考。
- (void)applicationWillEnterForeground:(UIApplication *)application
{
UIViewController *galleryViewController = self.window.rootViewController;
[galleryViewController doSomething];
}
編輯:這只是一個如何獲得對GalleryViewController引用的例子,如果它是你的rootViewController。如果您位於NavigationController或TabBarController中,則需要首先獲取對navigationController或tabBarController的引用,然後將其級聯到viewControllers。
如果你有一個複雜的VC結構,它可能是更容易訂閱通知作爲北斗星指出。信用應該歸功於他更快的迴應。
您可以從應用程序委託中的window
獲得對根視圖控制器的引用,然後投射或導航所需的控制器(如果它位於導航控制器中)。
你並不需要這種關係/知識添加到應用程序委託儘管作爲控制器本身可以添加爲UIApplicationWillEnterForegroundNotification
通知的觀察員。
+1 :'你不需要將這種關係/知識添加到應用程序委託中'。如果應用程序代理不需要知道它,那麼它不應該知道。只需將'UIApplicationWillEnterForegroundNotification'的觀察者添加到您的'GalleryViewController'類中即可。 –
你'GalleryViewController'是你第一個'UIViewController'?的 –
可能重複[如何分辨當控制器已經從後臺重新開始?(http://stackoverflow.com/questions/3535907/how-to-tell-when-controller-has-resumed-from-background) –