ios - 更改警报 View 可见时按主页按钮的默认行为

标签 ios objective-c uialertcontroller touch-id home-button

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

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

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

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

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

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

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

提前致谢。

最佳答案

我还没有确认您所看到的行为,但如果您对问题(应用程序不会进入后台)和原因(因为出现了 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];
    }
}

关于ios - 更改警报 View 可见时按主页按钮的默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275651/

相关文章:

swift - 存在警报 Controller 时如何模糊 View Controller ?

ios - UIAlertController 状态栏没有变暗和色调问题

ios - 为 uipopoverview 使用导航 Controller 的最佳方式

ios - 具有自定义类的iOS数组到具有NSString的数组

iphone - 应用程序在 NSURLConnection 中崩溃

objective-c - 如何旋转 NSTextView

ios - 如何在 swift 中禁用 UIAlertController 的解雇

ios - 在 iOS 8 中像 youtube 一样播放视频

iphone - 如何在 self.view 的属性上设置 lldb 观察点?

ios - CSS 动画在 iPhone/iOS12.2 上不起作用