拖动和释放通知时,将在iOS中调用ApplicationBecomeActive

时间:2014-07-31 13:38:29

标签: ios uiapplicationdelegate uiapplication

我的应用程序中有密码选项,因此如果用户设置了密码,那么当应用程序变为活动状态时我会首先显示密码页面,用户应该输入密码才能使用该应用程序

我用这种方式写了代码

- (void)applicationDidBecomeActive:(UIApplication *)application
{
     if([password length])
     {

                    EnterPasswordViewController *passwordView = [[EnterPasswordViewController alloc] initWithNibName:@"EnterPasswordViewController" bundle:nil];
                    [self presentViewController:passwordView animated:YES completion:NULL];

     }
}

这样可行,但问题是每当我进入应用程序时,我只是从顶部拖动通知并离开它,我看到的是applicationDidBecomeActive被称为,因此,密码页面再次显示,所以我不明白如何解决这个问题

此致 兰吉特。

1 个答案:

答案 0 :(得分:2)

考虑在-applicationWillEnterForeground:方法中显示密码控制器。

仅当您的应用完全关闭(进入后台或设备已锁定)然后返回前台时才会调用willEnterForeground

当系统为您提供警报时,您当前正在使用的那个也会被调用,例如要求用户允许推送通知甚至是您的应用

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    // Present password controller
}

或者,当您的应用进入后台时,您可以反转逻辑并显示它,而不是进入前景。