以编程方式关闭 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的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式关闭 iPhone?

以编程方式锁定或关闭屏幕

如何以编程方式关闭/禁用 NFC?

以编程方式关闭 Android 手机

以编程方式访问 Graphite 数据的最佳方式是啥? [关闭]

Android - 以编程方式打开或关闭 GPS