【问题标题】:When notification is dragged and released, ApplicationBecomeActive gets called in iOS拖动和释放通知时,在 iOS 中调用 ApplicationBecomeActive
【发布时间】:2014-07-31 13:38:29
【问题描述】:

我的应用程序中有密码选项,所以如果用户设置了密码,那么当应用程序激活时我会首先显示一个密码页面,用户应该输入密码才能使用该应用程序

我是这样写代码的

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

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

     }
}

这可行,但问题是每当我在应用程序内并且我只是从顶部拖动通知并离开它时,我看到的是 applicationDidBecomeActive 被调用,因此,密码页面又显示了,所以我不明白如何解决这个问题

问候 兰吉特。

【问题讨论】:

    标签: ios uiapplicationdelegate uiapplication


    【解决方案1】:

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

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

    当系统为您显示警报时,您当前使用的也会被调用,例如要求用户允许推送通知即使是您的应用程序

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

    或者,您可以反转逻辑并在您的应用进入后台时呈现它,而不是进入前台。

    【讨论】:

    • +1 用于在应用程序进入后台时显示它。聪明的把戏!
    • 嘿,谢谢..对于答案,我不知道在后台显示如何解决这个问题。
    • @Ranjit 如果你在它进入后台时显示它,那么当用户返回你的应用程序时它仍然会在那里。
    猜你喜欢
    • 2013-11-19
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2015-07-21
    相关资源
    最近更新 更多