在iOS中以编程方式检查警报

在iOS中以编程方式检查警报,ios,iphone,alert,alarm,alertview,Ios,Iphone,Alert,Alarm,Alertview,我有这样的场景, 我在iPhone中设置了2-3个闹钟。现在我正在运行我的应用程序。当我的应用程序正在执行时,如果触发了警报(或我的设备中显示的任何其他类型的警报),我想通过编程方式向应用程序了解该警报,并根据收到的警报执行一些任务。因此,我只想知道,通过它,您可以知道屏幕上显示了一些警报(可能是系统警报)。您可以通过:(未使用系统警报进行测试) 你的意思是想知道哪个警报被触发了吗?不只是我屏幕上出现的任何类型的警报,它可能是系统警报或我的应用程序发出的警报itself@MDThakkar:您的

我有这样的场景,
我在iPhone中设置了2-3个闹钟。现在我正在运行我的应用程序。当我的应用程序正在执行时,如果触发了警报(或我的设备中显示的任何其他类型的警报),我想通过编程方式向应用程序了解该警报,并根据收到的警报执行一些任务。因此,我只想知道,通过它,您可以知道屏幕上显示了一些警报(可能是系统警报)。

您可以通过:(未使用系统警报进行测试)


你的意思是想知道哪个警报被触发了吗?不只是我屏幕上出现的任何类型的警报,它可能是系统警报或我的应用程序发出的警报itself@MDThakkar:您的应用不应位于后台!不,我的应用程序在前台,我完成的任务是:1分钟后定时报警,我有按钮,当我按下按钮时,我保持睡眠(60),所以应用程序进入睡眠1分钟(在此期间报警触发警报),然后我使用您的代码检查警报,你的意思是,当应用程序再次唤醒时,屏幕上已经出现警报,你启动了上述方法,但不起作用?它没有给我答案……我没有否决你,其他人否决了你,它总是打印UILayoutContainerView,我正在向上投票你,我不想让你这么做unsatisfied@MDThakkar:我已经测试了代码。它在这里工作。我所做的是:首先我显示了
UIAlertView
,然后在1秒后我启动了上述方法,它返回
true
,并显示日志
UIAlertView
!!!
- (BOOL)isALertOnScreen
{
    for (UIWindow* window in [UIApplication sharedApplication].windows)
    {
        NSArray* subviews = window.subviews;
        if ([subviews count] > 0)
        {
            for (id obj in subviews)
            {
                DLog(@"%@",[obj class]);
                if ([obj isKindOfClass:[UIAlertView class]])
                    return YES;
            }
        }
    }
    return NO;
}