【发布时间】:2013-09-13 04:44:49
【问题描述】:
我在我的项目中使用了一个代码 sn-p 在这里回答:UIAlertView without having reference to it
代码如下:
+ (UIAlertView *) getUIAlertViewIfShown {
if ([[[UIApplication sharedApplication] windows] count] == 1) {
return nil;
}
UIWindow *window = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
if ([window.subviews count] > 0) {
UIView *view = [window.subviews objectAtIndex:0];
if ([view isKindOfClass:[UIAlertView class]]) {
return (UIAlertView *) view;
}
}
return nil;
}
不幸的是,它在 iOS 7 中不起作用,我无法关闭警报视图。在调试时,我发现在循环中它显示该视图属于UITransitionView 类。很混乱,因为我找不到这个视图类的任何快速文档。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
只保留对它的引用。
-
有没有可能有更多的窗口?您只检查一个窗口。为什么不检查所有这些?
-
@Kevin 我正在使用宏来显示警报视图并且使用得太频繁了。您的建议将是最后的选择。
-
@rmaddy 我调试了代码,它只返回了 windows 数组中的一个对象。
标签: ios objective-c cocoa-touch ios7