以编程方式解除UIAlertView

时间:2011-07-11 23:41:58

标签: iphone ios ipad uiviewcontroller uialertview

我有一个带有以下委托方法的UIAlertView:

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex {

但我有一个问题。在那个方法中,我做了一些逻辑并执行一些代码,这些代码需要花费很少的时间。在我做所有这些之前,我想解除alertView。我想解除该方法最顶端的警报视图。这样,当用户点击alertView上的按钮时,在执行下一行代码时,应用程序似乎不会冻结一秒钟。

3 个答案:

答案 0 :(得分:12)

以编程方式解除警报执行:
/* Your Processing Code Here */ [theAlertView dismissWithClickedButtonIndex:0 animated:YES];
[theAlertView dismissWithClickedButton Index:0 animated:YES];将使警报消失

答案 1 :(得分:4)

使用委托方法-alertView:didDismissWithButtonIndex:代替 - 一旦警报视图从屏幕上删除,它就会被调用,这至少会隐藏你的应用程序所具有的延迟 - 或者更好地使用后台线程,例如使用-performSelectorInBackground:withObject:来处理您需要执行的任何处理。

答案 2 :(得分:2)

使用执行的其他委托方法,而不是

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;

您可能还应执行异步提及的其他代码行,以免冻结UI。