我正在尝试使用专用UIWindow
来展示UIAlertControllers
。一切进展顺利,直到我意识到附加到UIAlertActions
的{{1}}上的处理程序如果被另一个UIAlertControllers
上的控制器呈现则没有被解雇。
如果我在主窗口的任何viewController中显示UIWindow
,则会触发处理程序,如果我从警报窗口的rootViewController中显示处理程序,则不会触发处理程序。
有关我在这里可能遇到的任何提示吗?谢谢!
修改: Test Project说明问题。
已解决:我忘记在我的alertWindowRootViewController子类中覆盖UIAlertController
中的完成块。
答案 0 :(得分:2)
我无法想象你为什么要这样做。但我的猜测是,Apple正在优化一些不是关键窗口的窗口上的操作。
无论是什么,简短的回答是你不应该这样做。
答案 1 :(得分:0)
事实证明,我忘记在覆盖dismissViewControllerAnimated:completion
时调用完成块。卫生署!
我已更新我的Test Project以包含此修复程序,希望这对其他人有价值。
我确实比Dylan Betterman's Solution更喜欢我的解决方案,因为我的周围有永久性窗口,与UIAlertController
的生命周期无关。这意味着与Dylan的解决方案不同,您可以保留警报控制器的强大指针。