如何判断控制器何时从后台恢复?

时间:2010-08-21 01:42:43

标签: iphone ios4 multitasking

所以我想在我即将推出的iPhone应用程序中支持应用程序切换,并且我已经在我的应用程序委托中实现了所有正确的委托方法。因此,当用户恢复应用程序时,我可以在NSLog中看到他们的活动。但是,我怎么能告诉我的应用程序已恢复控制器?有没有一种方法可以放在我的控制器中告诉我应用程序已在所述控制器中恢复?我问的原因是因为我的应用程序处理自己的URL架构,我想根据启动的URL更新视图。任何帮助将不胜感激。

提前致谢

3 个答案:

答案 0 :(得分:20)

您可以让控制器观察UIApplicationWillEnterForeground通知。它可能看起来像这样:

- (void) viewDidLoad
{
    [super viewDidLoad];
    //do stuff here
    if(&UIApplicationWillEnterForegroundNotification) { //needed to run on older devices, otherwise you'll get EXC_BAD_ACCESS
        NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
        [notificationCenter addObserver:self selector:@selector(enteredForeground:) name:UIApplicationWillEnterForegroundNotification object:nil];
    }


}
- (void)enteredForeground:(NSNotification*) not
{
    //do stuff here
}

答案 1 :(得分:3)

对于Swift 4.2:

 NotificationCenter.default.addObserver(self,
 selector: #selector(appWillEnterForeground),
 name: UIApplication.willEnterForegroundNotification, 
 object: nil)



@objc func appWillEnterForeground() {
    // run when app enters foreground
}

答案 2 :(得分:-2)

您也可以在应用委托中覆盖- (void)applicationDidBecomeActive:(UIApplication *)application,让它在从后台返回时执行您想要的操作。如果您希望特定视图获取消息而不是应用程序委托,则需要注册上述Elfred所述的通知。