好的,我有一个运行计时器的应用程序。如果用户正在观看应用程序的计时器倒计时(例如,应用程序在前台唤醒并激活),我希望向用户显示警报。当我的计时器到达0时,我已将此代码添加到我的计时器中:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Reminder" message:@"It's time!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
我遇到的问题是,如果我将手机置于睡眠状态或以其他方式使应用程序处于非活动状态,我会设置本地通知来处理此警报,以便当用户返回应用程序时,我不会不希望他们看到上面提到的警报。这是一个不必要的"点击"他们必须做。
当应用进入后台或进入前台时,是否有办法自动关闭此提醒?
答案 0 :(得分:0)
没有自动解雇。
您必须告知您的应用已激活(从UIApplicationDelegate
)到UIAlertView
。
为此,存在许多技术,您可以在AppDelegate
中继续引用该提醒以解除该提示,或者使用从代理发布并在NSNotification
或其他地方观察到的ViewController
你正在显示这个警报。
答案 1 :(得分:0)
您必须在UIAlertview定义中使用NSNotificationcenter。
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK",nil];
[alert show];
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationWillResignActiveNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification* notification){
[alert dismissWithClickedButtonIndex:0 animated:NO];
}];
答案 2 :(得分:0)
或者你也可以使用...... https://github.com/sdarlington/WSLViewAutoDismiss