检查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]) { ... }
这应该工作。