我已经在自定义类中实现了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];
但是这个代码在iOS7中不起作用。我不确定我所遵循的方式是否正确。
遍历[UIApplication sharedApplication].windows
是个坏主意。更好的概念是保留活动UIAlertView
的引用,并在需要时将其忽略。
注意:使用UIAlertView
属性isVisible
,该属性指示是否显示AlertView。
示例:
if (YES == alertViewInstance.isVisible)
{
//dismiss your alert view
}