检查UIView是否显示UIAlertView

是否有可能确定当前的UIView是否显示了UIAlertView(除了每次创buildUIAlertView时设置一个variables)。

我正在思考一些问题

if ([self.view.subviews containsObject:UIAlertView]) { ... } 

但是,这显然是行不通的。

这不适用于iOS7及以上版本。

[alertView显示]我猜主窗口添加子视图。

 for (UIWindow* window in [UIApplication sharedApplication].windows){ for (UIView *subView in [window subviews]){ if ([subView isKindOfClass:[UIAlertView class]]) { NSLog(@"has AlertView"); }else { NSLog(@"No AlertView"); } } } 

我认为这将起作用:

 -(BOOL) doesAlertViewExist { if ([[UIApplication sharedApplication].keyWindow isMemberOfClass:[UIWindow class]]) { return NO;//AlertView does not exist on current window } return YES;//AlertView exist on current window } 

如果您将UIAlertView作为属性存储在显示它的视图控制器上,然后运行您的代码:

 if ([self.view.subviews containsObject:self.myalertview]) { ... } 

这应该工作。