tou*_*bun 0 objective-c uialertview ios uialertcontroller
有没有办法判断目前是否有UIAlertView实例显示?因为可以UIAlertView在同一窗口级别显示多个.
if ([self isAlertViewShowing]) {
// do not show UIAlertView again.
} else {
// show your UIAlertView.
}
Run Code Online (Sandbox Code Playgroud)
希望有一种叫做isAlertViewShowing或其他的方法.
方法1- 初始化警报的默认标志...如果警报未打开,则将isAlertViewShowing设置为NO
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
}
Run Code Online (Sandbox Code Playgroud)
方法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;
}
Run Code Online (Sandbox Code Playgroud)
如果
UIAlertView实例的数量可能多于一个,我建议使用第二种方法.