处理applicationDidBecomeActive

UIApplicationDelegate在我的主AppDelegate.m类中有协议,applicationDidBecomeActive定义了方法。

我想在应用程序从后台返回时调用方法,但该方法在另一个视图控制器中。如何检查applicationDidBecomeActive方法中当前显示的视图控制器,然后调用该控制器中的方法?


慕侠2389804
浏览 1122回答 3
3回答

智慧大石

应用程序中的任何类都可以成为应用程序中不同通知的“观察者”。创建(或加载)视图控制器时,您需要将其注册为观察者,UIApplicationDidBecomeActiveNotification并指定在将通知发送到应用程序时要调用的方法。[[NSNotificationCenter defaultCenter] addObserver:self                                         selector:@selector(someMethod:)                                             name:UIApplicationDidBecomeActiveNotification object:nil];不要忘记自己清理!当您的视图消失时,请记住将自己移除为观察者:[[NSNotificationCenter defaultCenter] removeObserver:self                                                 name:UIApplicationDidBecomeActiveNotification                                              object:nil];有关通知中心的更多信息。

人到中年有点甜

Swift 3,4等效:添加观察者NotificationCenter.default.addObserver(self,    selector: #selector(applicationDidBecomeActive),    name: .UIApplicationDidBecomeActive, // UIApplication.didBecomeActiveNotification for swift 4.2+    object: nil)删除观察者NotificationCenter.default.removeObserver(self,    name: .UIApplicationDidBecomeActive, // UIApplication.didBecomeActiveNotification for swift 4.2+    object: nil)打回来@objc func applicationDidBecomeActive() {    // handle event}

慕慕森

Swift 2等效:let notificationCenter = NSNotificationCenter.defaultCenter()// Add observer:notificationCenter.addObserver(self,  selector:Selector("applicationWillResignActiveNotification"),  name:UIApplicationWillResignActiveNotification,  object:nil)// Remove observer:notificationCenter.removeObserver(self,  name:UIApplicationWillResignActiveNotification,  object:nil)// Remove all observer for all notifications:notificationCenter.removeObserver(self)// Callback:func applicationWillResignActiveNotification() {  // Handle application will resign notification event.}
打开App,查看更多内容
随时随地看视频慕课网APP