在iPhone上,如何在显示UIAlertView
之前检查是否已显示某些UIAlertView
?
答案 0 :(得分:5)
这应该有效:
for( UIView* subview in [UIApplication sharedApplication].keyWindow.subviews ) {
if( [subview isKindOfClass:[UIAlertView class]] ) {
NSLog( @"Alert is showing" );
break;
}
}
请记住,如果Apple更改警报的显示方式,此实施可能会中断。
答案 1 :(得分:2)
我认为没有任何内置方法可以确定是否有任何警报显示。我过去处理这个问题的方法是跟踪我正在显示的警报视图,方法是将它们分配到以下属性:
UIAlertView *currentAlert;
当他们被解雇时,设置:
currentAlert = nil;
然后你只需检查currentAlert == nil,然后再显示另一个。
显然,这种方法存在一些主要缺点,包括但不限于:
但这是我所知道的唯一方式。