我在我的应用程序中实现了导航中介单例。介体保持对主视图控制器的引用以启动视图控制器转换。因此,为了呈现视图控制器,消费者将调用导航中介来执行此操作。与解雇相同,以便它可以重置主视图控制器。
我遇到的问题是呈现UIAlertController。我无法通过导航中介关闭此控制器,因为当点击按钮时它会自动被解除,因此在解除主视图控制器时会失去重置主视图控制器的能力。
我唯一提出的解决方案是在UIAlertController上创建一个扩展来覆盖viewWillDisappear,它会重置主视图控制器,如下所示。有没有办法取消默认的解雇行为?
extension UIAlertController {
public override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
NavigationMediator.resetPrimaryViewController(self.presentingViewController)
}
}
答案 0 :(得分:-1)
不,但你可以在事件结束前回复。 UIALertViewDelegate。 alertView:willDismissWithButtonIndex:
否则建立自己的AlertView。