[iOS]:检测视图控制器何时从另一个外部应用程序返回后出现

时间:2015-12-18 18:40:27

标签: ios objective-c

这是我的方案:

我有一个视图控制器,用户可以通过这种方式按下按钮转到另一个应用程序(设置):

    -(void) goToSettings{
       [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    }

因此,此代码打开应用程序的屏幕设置,它在左上角显示如下图例:

  

返回myApplication

我想检测用户按下按钮的视图控制器何时再次处于活动状态。我知道您可以在委托文件中使用此方法再次检测应用程序是否处于活动状态

- (void)applicationWillEnterForeground:(UIApplication *)application

但是我需要在特定的视图控制器中进行检测。我试过了-(void)viewWillAppear:(BOOL)animated,但它不起作用。有人对此有任何想法吗?

1 个答案:

答案 0 :(得分:7)

设置视图控制器以收听UIApplicationDidBecomeActiveNotification通知。

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

然后添加becomeActive:方法:

- (void)becomeActive:(NSNotification *)notification {
    // App is active again - do something useful
}

请务必在适当的位置移除观察者。

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

当然,您的应用可能会因为多种原因而再次激活,而不仅仅是从“设置”应用返回。