0

注意:当我写“警报视图”时,我指的是UIAlertController UIAlertControllerStyleAlert

当我的应用程序在最短时间后进入前台时,会PinUnlockViewController出现一个自定义。此行为发生在 iOS 8 和 iOS 9(可能还有其他版本,但我没有测试过其他版本)

如果用户启用了 TouchID,则会在 上显示一个警报视图PinUnlockVC,提示用户使用 TouchID 解锁应用程序,而不是输入 pin。

当我按下主页按钮时,警报视图被关闭。 该应用程序没有后台- 只有警报视图被关闭。这不是所需的行为,但它似乎是默认的操作系统行为。

应用程序中的其他任何地方,当我按下主页按钮时,应用程序就会进入后台。这是期望的行为。

如何覆盖,在这种情况下似乎是默认的操作系统功能,如果警报视图可见,按下主页按钮以使应用程序后台运行?

我不确定当任何警报视图可见时是否会发生这种情况,或者它是否特定于 TouchID 提示警报视图(尽管我不明白为什么它会特定于这种情况)。

提前致谢。

4

1 回答 1

1

我尚未确认您所看到的行为,但如果您对问题(应用程序不会进入后台)和原因(因为存在UIAlertController呈现)是正确的,那么这里有一个解决方案的想法:在viewDidLoad,订阅...

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillResignActive:) name:UIApplicationWillResignActiveNotification object:nil];

然后在收到appWillResignActive...

- (void)appWillResignActive:(NSNotification *)notification {
    if ([self.presentedViewController isKindOfClass:[UIAlertController self]]) {
        [self dismissViewControllerAnimated:YES completion:nil];
    }
}
于 2016-07-09T00:36:36.523 回答