4

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

我在想一些事情

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

但这显然行不通。

4

3 回答 3

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

于 2012-05-24T05:42:07.937 回答
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
}
于 2014-01-16T22:52:07.583 回答
1

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

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

那应该行得通。

于 2012-05-23T22:37:34.567 回答