我想要做一些操作并在任何UIAlertController因为用户点击其中一个警报按钮而退出之前和之后呈现一些UI(动画完成)。当UIAlertController在按下按钮时被取消通知
我如何得到通知用户在我的UIAlertController中按下了一些按钮,它将被解雇然后被解雇?
在文档中,建议不要继承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处理程序中也会有点麻烦。
我会很感激任何想法。
为什么你不在“defaultAction”块内做所有需要的东西?无论如何,此阻止警报将被解除。 –
@ biloshkurskyi.ss正如我在我的问题中写的 - 这很容易出错,人们可能很容易在某处忘记一个块。 – iur