处理applicationDidBecomeActive – “视图控制器如何响应应用程序变为活动?

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

我想调用一个方法,当应用程序从后台返回,但方法是在另一个视图控制器。 我怎样才能检查哪个视图控制器当前显示在applicationDidBecomeActive方法,然后调用该控制器内的方法?

您的应用程序中的任何类都可以成为应用程序中不同通知的“观察者”。 当您创build(或加载)您的视图控制器时,您需要将其注册为UIApplicationDidBecomeActiveNotification的观察者,并指定将该通知发送到您的应用程序时要调用的方法。

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(someMethod:) name:UIApplicationDidBecomeActiveNotification object:nil]; 

不要忘记自己清理! 当你的观点消失时,记得要把你自己视为观察者:

 [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; 

有关通知中心的更多信息。

Swift 3相当于:

添加观察员

 NotificationCenter.default.addObserver(self, selector: #selector(applicationDidBecomeActive), name: .UIApplicationDidBecomeActive, object: nil) 

删除观察者

 NotificationCenter.default.removeObserver(self, name: .UIApplicationDidBecomeActive, 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. }