iOS覆盖本地通知 [英] IOS Overriding Local Notifications

查看:185
本文介绍了iOS覆盖本地通知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个Local Notification,当单击某个按钮(SetButton)时会触发60秒.我现在的问题是,如果再次按下SetButton,它不会覆盖第一次按下,它显示2条通知,依此类推.如何确保第二次按此按钮会覆盖第一次按的按钮,并且没有通知的累积?

I created a Local Notification that triggers 60 seconds when a certain button(SetButton) is clicked. My problem right now is if SetButton is pressed again, it does not override the first press, it displays 2 notifications and so on. How do I make sure that the second press of the button overrides the first press and there isn't a build up of notifications ?

- (IBAction)SetButtonPressed:(id)sender {
      UILocalNotification *localNotification = [[UILocalNotification alloc] init];
      localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:60];
      localNotification.alertBody = @"HEY GET UP";
      localNotification.timeZone = [NSTimeZone defaultTimeZone];
      localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;

}

我的AppDelegate.m

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
     UILocalNotification *localNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
     if ([UIApplication instanceMethodForSelector: @selector(registerUserNotificationSettings:)]) {
         [application registerUserNotificationSettings: [UIUserNotificationSettings settingsForTypes: UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil]];
     }

     if (localNotification) {
        application.applicationIconBadgeNumber = 0;
     }
}

推荐答案

如果您仅对该特定操作使用通知,则可以使用

If you only use notifications for that specific action you could cancel all notifications at once using

[[UIApplication sharedApplication] cancelAllLocalNotifications];

这篇关于iOS覆盖本地通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆