我有一个带有以下委托方法的UIAlertView:
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex {
但我有一个问题。在那个方法中,我做了一些逻辑并执行一些代码,这些代码需要花费很少的时间。在我做所有这些之前,我想解除alertView。我想解除该方法最顶端的警报视图。这样,当用户点击alertView上的按钮时,在执行下一行代码时,应用程序似乎不会冻结一秒钟。
答案 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。