检查UIView是否显示UIAlertView

时间:2012-05-23 21:15:42

标签: objective-c ios uiview uialertview subview

是否可以确定当前UIView是否显示UIAlertView(除了每次创建UIAlertView时设置变量)。

我在想

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

但这显然不起作用。

3 个答案:

答案 0 :(得分:16)

这在iOS7及更高版本中无效。

<击> [alertView Show] 我想在主窗口上添加子视图。

<击>
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");
        }
    }
}

<击>

答案 1 :(得分:10)

我认为它会起作用:

-(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
}

答案 2 :(得分:1)

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

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

这应该有效。