处理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. }