有没有办法判断当前是否有UIAlertView
个实例?因为可以在同一窗口级别显示多个UIAlertView
。
if ([self isAlertViewShowing]) {
// do not show UIAlertView again.
} else {
// show your UIAlertView.
}
希望有一种名为isAlertViewShowing
或其他的方法。
答案 0 :(得分:7)
方法1 - 初始化警报的默认标志...如果警报未打开,则将isAlertViewShowing设置为否
Bool isAlertViewShowing;
isAlertViewShowing = NO;
if (isAlertViewShowing == NO){
UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
// Now set isAlertViewShowing to YES
isAlertViewShowing = YES;
}
else
{
//Do something
}
方法2 -
创建自己的函数以检查是否有UIAlertView
显示
- (BOOL)isAlertViewShowing{
for (UIWindow* window in [UIApplication sharedApplication].windows) {
NSArray* subviews = window.subviews;
if ([subviews count] > 0){
for (id view in subviews) {
if ([view isKindOfClass:[UIAlertView class]]) {
return YES;
}
}
}
}
return NO;
}
如果
UIAlertView
个实例的数量,我建议使用第二种方法 可能不止一个。