在iOS7中以编程方式解除uialertview

时间:2014-09-01 15:06:20

标签: objective-c iphone ios7 uialertview

我在自定义类中实现了UIAlertview类别。我从我的uitableviewcontroller调用该方法来显示警告。但是在iPhone 4设备上的iOS7中,警报视图会快速点击uitableviewcells多次出现。

如果已经使用以下代码打开了alertview,我试图解除它。

for (UIWindow* w in [UIApplication sharedApplication].windows)
    for (NSObject* o in w.subviews)
        if ([o isKindOfClass:[UIAlertView class]])
            [(UIAlertView*)o dismissWithClickedButtonIndex:[(UIAlertView*)o cancelButtonIndex] animated:YES];

但是这个代码在iOS 7中不起作用。我不确定我遵循的方式是否正确。

1 个答案:

答案 0 :(得分:0)

迭代通过[UIApplication sharedApplication].windows是一个坏主意。更好的概念是保留活动UIAlertView的引用并在需要时将其关闭。

注意: 使用UIAlertView属性isVisible,它指示是否显示AlertView。

示例:

if (YES == alertViewInstance.isVisible)
{
   //dismiss your alert view
}