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