我试图了解我的应用程序的奇怪行为,这是一个描述(在一个简单的项目中测试)。
ViewControllerA 以模态方式呈现 ViewControllerB
ViewControllerB 包含一个按钮,此按钮呈现以这种方式指定的 UIAlertController
alert = [UIAlertController alertControllerWithTitle:@"Test" message:nil preferredStyle:UIAlertControllerStyleActionSheet];
[alert addAction:[UIAlertAction actionWithTitle:@"Action" style:UIAlertActionStyleDefault handler:^(UIAlertAction *handler) { NSLog(@"Action"); }]];
ViewControllerB 以这种方式呈现警报
- (IBAction)button:(id)sender {
alert.popoverPresentationController.sourceView = self.button;
alert.popoverPresentationController.sourceRect = self.button.bounds;
[self presentViewController:alert animated:YES completion:nil];
}
现在,如果您单击按钮,则会出现警报,如果您在警报之外单击,则警报会消失(我在 iPad 上)。您可以根据需要执行多次...
这是错误:当出现警报时,如果您在外部单击两次(足够快,〜0,2s 间隔),警报消失并且 ViewControllerB isdismissed 。最后我们可以看到 ViewControllerA 但我们从来没有要求它。
还有一条警告信息:
Warning: Attempt to dismiss from view controller <UIViewController: 0x7f85ab633f70> while a presentation or dismiss is in progress!
谢谢您的帮助。