1

我正在尝试使用专用UIWindowUIAlertControllers. 一切进展顺利,直到我意识到UIAlertActions附加到的处理程序UIAlertControllers如果由另一个控制器提供,则不会被触发UIWindow

如果我UIAlertController从主窗口上的任何 viewController 呈现,则触发处理程序,如果我从警报窗口的 rootViewController 呈现它,则不会触发处理程序。

关于我在这里可能遇到的任何提示?谢谢!

编辑: 说明问题的测试项目。

已解决:我忘记dismissViewControllerAnimated:completion:在我的 alertWindowRootViewController 子类中调用完成块。

4

2 回答 2

2

所以事实证明我忘记在我的覆盖中调用完成块dismissViewControllerAnimated:completion。嗬!

我已经更新了我的测试项目以包含修复,希望这对其他人有价值。

我确实比Dylan Betterman 的解决方案更喜欢我的解决方案,因为我的解决方案保留了一个与UIAlertController. 这意味着您可以保留指向警报控制器的强指针,这与 Dylan 的解决方案不同。

于 2015-10-08T15:25:15.517 回答
2

我无法想象你为什么要这样做。但我的猜测是,Apple 正在优化不是关键窗口的窗口上的一些操作。

无论简短的回答是什么,您都不应该这样做。

于 2015-10-07T22:39:03.353 回答