以编程方式关闭 UIAlertView
Posted
技术标签:
【中文标题】以编程方式关闭 UIAlertView【英文标题】:Dismissing UIAlertView programmatically 【发布时间】:2011-07-11 23:41:58 【问题描述】:我有一个带有以下委托方法的 UIAlertView:
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
但是我有一个问题。在这种方法中,我会执行一些逻辑并执行一些需要少量时间的代码行。在执行所有这些操作之前,我想关闭 alertView。我想在该方法的最顶部关闭警报视图。这样,当用户点击 alertView 上的按钮时,在执行下一行代码时,应用似乎不会有一秒钟的冻结。
【问题讨论】:
【参考方案1】:要以编程方式解除警报:/* Your Processing Code Here */
[theAlertView dismissWithClickedButtonIndex:0 animated:YES];
[theAlertViewdismissWithClickedButtonIndex:0 动画:YES];将使警报消失
【讨论】:
不起作用。你的意思是:[theAlertView dismissWithClickedButtonIndex:0 animated:YES];
【参考方案2】:
要么改用委托方法-alertView:didDismissWithButtonIndex:
——一旦从屏幕上移除警报视图,它就会被调用,这至少会隐藏你的应用程序的延迟——或者更好的是,使用后台线程,例如与-performSelectorInBackground:withObject:
一起处理您需要做的任何处理。
【讨论】:
【参考方案3】:对 did 使用其他委托方法,而不是 will:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;
您可能还应该异步执行您提到的其他代码行,以免完全冻结 UI。
【讨论】:
以上是关于以编程方式关闭 UIAlertView的主要内容,如果未能解决你的问题,请参考以下文章