如何在iOS中禁用/启用本地通知?

时间:2014-03-12 12:24:04

标签: ios iphone objective-c cocoa-touch uilocalnotification

在我的应用程序中,我正在保存某些坐标并使它们成为地理围栏,因此每次用户位置输入某个地理围栏时,我都会在didEnterRegion委托方法中添加一些代码来通知用户他/她进入了某个地理围栏。我正在使用UILocalNotification通知用户这件事。

我关注的是,在我的应用程序“设置”视图中。我有一个切换按钮,用于启用/禁用通知。我怎么做?

谢谢!

2 个答案:

答案 0 :(得分:3)

启用/禁用UILocalNotification没有任何特定属性,因此我们无法轻松处理它。要启用和禁用UILocalNotification(在您的情况下),

我只是把我的逻辑

if(toggleButtonEnable)
{
  // First remove all LocalNotifications with set it's BadgeNumber = 0 
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;

  // Then write code of UILocalNotification with it's fireDate
}
else
{
   // remove all LocalNotifications with set it's BadgeNumber = 0
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}

使用上述代码,只要if condition变为 true ,首先删除/取消所有通知并设置 badge = 0; 并创建新的{{ 1}},当UILocalNotification变为 false 时,也会删除/取消所有通知并设置 badge = 0; 。因此,您可以轻松处理(启用/禁用) if condition

答案 1 :(得分:-5)

无法启用/禁用本地通知。但有一种方法可以做到这一点。

删除通知(禁用通知)

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"NotifyName" object:nil];

之后添加通知(启用通知)

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(abc:) name:@"NotifyName" object:nil];