打开和关闭警报ios

时间:2012-09-19 03:53:45

标签: ios xcode uilocalnotification alarm

我准备了一个闹钟应用程序,它使用UILocalnotification来安排闹钟。现在设置闹钟后,我想进行切换,以便我可以使用{{1}打开和关闭它我不知道怎么能这样做?我现在想的是,当你关闭闹钟时,我会在取消UISwitch之前存储DATE和TIME值,这样当用户再次打开警报我使用存储的DATE和TIME值重新安排它。这是正确的做法,还是有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:7)

只需使数据库表中包含'date','isCanceled'字段和唯一ID'alarmId'列(根据需要使用rest)。因此,当用户想取消闹钟时,试试这个,

    NSString *alarmId = @"some_id_to_cancel"; 
    UILocalNotification *notificationToCancel=nil;            
    for(UILocalNotification *aNotif in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
        if([aNotif.userInfo objectForKey:@"ID"] isEqualToString:alarmId]) { 
            notificationToCancel = aNotif; 
            break; 
        } 
    } 
    [[UIApplication sharedApplication] cancelLocalNotification:notificationToCancel];

更好地使用此功能,您可以通过

创建闹钟
UILocalNotification *localNotif = [[UILocalNotification alloc] init]; 

 if (localNotif == nil)  
  return;

 localNotif.fireDate = itemDate; 
 localNotif.timeZone = [NSTimeZone defaultTimeZone];
 localNotif.alertAction = NSLocalizedString(@"View Details", nil); 
 localNotif.alertBody = title;
 localNotif.soundName = UILocalNotificationDefaultSoundName; 

 NSDictionary *infoDict = [NSDictionary dictionaryWithObject:stringID forKey:@"ID"]; 
 localNotif.userInfo = infoDict; 

 [[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; 
 [localNotif release];