Reu*_*ven 10 iphone uialertview uiactionsheet
在我的iOS应用程序中,我有一个计时器启动,当它启动时,我需要能够检测是否有一个Alert(UIAlertView)或一个Action Sheet(UIActionSheet)打开.
一种方法是修改显示警报/操作表的代码 - 但不幸的是,这不是我的选择.
所以,问题是 - 有没有办法知道/检测警报或行动表是否已被打开?
是否有任何通知在打开时发送,或者任何遍历视图层次结构以检测它?
谢谢
Sam*_*hie 17
他们确实会在打开时发送警报,但仅限于他们delegate- 请检查此问题,以便找到解决该问题的方法.Techzen建议YES在打开警报时设置布尔标志,并NO在关闭警报时将其设置回.
编辑:
由于您根本无法访问代码,为什么不尝试这段笨重的代码:
-(BOOL) doesAlertViewExist {
for (UIWindow* window in [UIApplication sharedApplication].windows) {
NSArray* subviews = window.subviews;
if ([subviews count] > 0) {
BOOL alert = [[subviews objectAtIndex:0] isKindOfClass:[UIAlertView class]];
BOOL action = [[subviews objectAtIndex:0] isKindOfClass:[UIActionSheet class]];
if (alert || action)
return YES;
}
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
Reu*_*ven 12
- (BOOL) doesAlertViewExist {
for (UIWindow* window in [UIApplication sharedApplication].windows) {
for (UIView* view in window.subviews) {
BOOL alert = [view isKindOfClass:[UIAlertView class]];
BOOL action = [view isKindOfClass:[UIActionSheet class]];
if (alert || action)
return YES;
}
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12216 次 |
| 最近记录: |