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

Posted

技术标签:

【中文标题】拖动和释放通知时,在 iOS 中调用 ApplicationBecomeActive【英文标题】:When notification is dragged and released, ApplicationBecomeActive gets called in iOS 【发布时间】: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 被调用,因此,密码页面又显示了,所以我不明白如何解决这个问题

问候 兰吉特。

【问题讨论】:

【参考方案1】:

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

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

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

- (void)applicationWillEnterForeground:(UIApplication *)application

    // Present password controller

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

【讨论】:

+1 用于在应用程序进入后台时显示它。聪明的把戏! 嘿,谢谢..对于答案,我不知道在后台显示如何解决这个问题。 @Ranjit 如果你在它进入后台时显示它,那么当用户返回你的应用程序时它仍然会在那里。

以上是关于拖动和释放通知时,在 iOS 中调用 ApplicationBecomeActive的主要内容,如果未能解决你的问题,请参考以下文章

在反应组件中未调用拖动端的 Firefox

从后台唤醒应用程序 iOS

制作屏幕外可拖动视图(如 iOS 5 通知中心)

iOS创建添加通知、发送通知、移除通知

拖动结束时未调用 QTableView mouseRelease 事件,错误?

拖动时标记未添加 - Google Maps iOS 应用