由于用户点击其中一个警报按钮,我想在任何UIAlertController解散自己(动画完成)之前和之后立即执行一些操作并提供一些UI .
如何通知用户在我的UIAlertController中按下某个按钮,它将被解雇然后被解雇?
在docs中,建议不要继承UIAlertController . 我仍然尝试了我的运气子类化,认为它可能在内部调用 func dismiss(animated flag: Bool, completion: (() -> Void)? = nil)
本身 . 像 self.dismiss(...
之类的东西,但在iOS10上似乎并非如此 .
我还尝试在UIAlertAction处理程序中添加“手动”解雇:
let alert = UIAlertController.init(...
let defaultAction = UIAlertAction(title: "OK", style: .default, handler: { action in
alert.dismiss(animated: true, completion: {
print("Dismissed")
})
})
alert.addAction(defaultAction)
但似乎警告在按下按钮之后但在调用处理程序之前被解除 . 无论如何它不起作用 . 即使它有效,记住将我的代码添加到每个UIAlertAction处理程序中也会有点麻烦 .
我很感激任何想法 .
1 回答
虽然不建议使用子类,但您可以使用这样的简单子类:
你可以这样使用它:
输出按以下顺序排列:
presentCompletion
将消失
确实消失了
用户点击是 .