我已经在我的应用程序中实现了导航中介器单例。中介器保留对主要视图控制器的引用,以便从中启动视图控制器转换。因此,要呈现一个视图控制器,使用者需要调用导航中介器来完成此操作。同样的方法还有dismissal,这样就可以重置主视图控制器。
我遇到的问题是如何呈现一个UIAlertController。我不能通过我的导航中介器关闭这个控制器,因为当点击一个按钮时它会自动关闭,因此当它关闭时失去了重置主视图控制器的能力。
我想出的唯一解决方案是在UIAlertController上创建一个扩展来覆盖viewWillDisappear,这将重置主视图控制器,如下所示。有没有办法取消默认的解雇行为?
extension UIAlertController {
public override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
NavigationMediator.resetPrimaryViewController(self.presentingViewController)
}
}发布于 2015-01-22 22:36:00
不能,但您可以在事件结束之前对其进行响应。UIALertViewDelegate。alertView:willDismissWithButtonIndex:
否则,构建您自己的AlertView。
https://stackoverflow.com/questions/28089004
复制相似问题