gpt4 book ai didi

ios - 从 iOS 8 - iOS 11 中的操作表委托(delegate)以模态方式呈现 View Controller

转载 作者:IT王子 更新时间:2023-10-29 07:34:29 26 4
gpt4 key购买 nike

所以我注意到在 iPad 上的 iOS8 beta 3(更新:仍然发生在 iOS 11.2 中),当尝试从 UIActionSheet 的委托(delegate)方法中呈现 View Controller 时,“什么都没有”发生,并且日志消息输出到调试控制台,说明在转换警报 Controller 时尝试进行演示:

Warning: Attempt to present <UIViewController: 0x...> on <ViewController: 0x...> which is already presenting <UIAlertController: 0x...>

最佳答案

更新:自 iOS 9 SDK 起,UIActionSheet 已弃用,因此不要指望有关此问题的修复。最好在可能的情况下开始使用 UIAlertController


问题似乎出自 Apple 转而在内部使用 UIAlertController 来实现警报 View 和操作表的功能。这个问题主要出现在 iPad 和 action sheet 上,因为在 iPad 上,action sheet 在指定 View 中显示为弹出窗口,Apple 所做的是遍历响应链,直到它找到一个 View Controller 并调用 presentViewController:animated :completion: 与内部 UIAlertController。这个问题在 iPhone 和警报 View 上不太明显,因为 Apple 实际上创建了一个单独的窗口,一个空的 View Controller 并在其之上呈现内部 UIAlertController,所以它似乎不会干扰其他演示文稿。

我已针对此问题打开错误报告:rdar://17742017。请复制它并让 Apple 知道这是一个问题。

作为解决方法,我建议使用以下方法将演示延迟到下一个运行循环:

dispatch_async(dispatch_get_main_queue(), ^ {
[self presentViewController:vc animated:YES completion:nil];
});

关于ios - 从 iOS 8 - iOS 11 中的操作表委托(delegate)以模态方式呈现 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com