繁体   English   中英

可见警报视图时更改主页按钮按下的默认行为

[英]Change default behavior of home button press when alert view is visible

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

在最短的时间后将我的应用程序显示在前台时,将显示自定义PinUnlockViewController 此行为发生在iOS 8和iOS 9(以及其他版本,但我尚未测试其他版本)中

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

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

在应用程序中的其他任何地方,当我按下主屏幕按钮时,该应用程序都会被后台显示。 这是期望的行为。

如果可以看到警报视图,如何覆盖Home的默认按钮(在这种情况下,默认情况下是OS的默认功能)以使应用程序后台运行?

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

提前致谢。

我尚未确认您所看到的行为,但是如果您对问题(应用程序不会后台运行)和原因(因为提供了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];
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM