2016-11-10 40 views
3

有没有反正等待用户按下快速关闭alertController的按钮3,通过使用DispatchQueue或别的东西?在UIAlertController被解除之前是否可以阻止执行我的代码?

+1

看看 - http://stackoverflow.com/questions/37801436/how-do-i-write-dispatch-after-gcd-in-swift-3 –

+0

是的,我知道它,但我的意思是,在我提交了alertcontroller之后,是否有反正等待(让我的代码不执行任何操作)直到用户关闭警报? – Anthony

+1

如果你想停止执行你的代码,直到用户解除警报,那么将你的执行代码添加到'UIAlertAction'的处理程序部分。 –

回答

1

你的意思是这样的吗?

alertController.displayAndWaitUntilDismissed() 
// This line is only reached after the alert controller is dismissed 
print("Alert controller dismissed.") 

理论上,是的,您可以使用调度信号来阻塞,直到警报被解除。但这是一个糟糕的主意 - 我甚至不能想到一个可以接受的场景。只需接受您必须通过在警报控制器操作中执行所需代码来异步处理它。

0

只需在警报解除后将所有要执行的代码移动到单独的方法中。当您添加UIAlertActions时,请执行所有操作'handler参数调用该方法。这样,无论用户按下哪个按钮,您的代码都将始终执行!

相关问题