目覚まし時計アプリを用意しました。目覚まし時計を設定したら、目覚まし時計を使っUILocalnotification
てオンとオフを切り替えたいのですが、UISwitch
どうすればいいのかわかりません。今のところ、アラームをオフにしたときは、キャンセルする前にDATEとTIMEの値を保存してUILocalnotification
、ユーザーが再びアラームをオンにしたときに、保存したDATEとTIMEの値でスケジュールを変更することを考えています。それは正しい方法ですか、それとも他の方法がありますか?
質問する
1921 次
1 に答える
7
'date'、'isCanceled'フィールドと一意のID'alarmId'列を持つデータベーステーブルを作成するだけです(残りは必要に応じて使用してください)。したがって、ユーザーがアラームをキャンセルしたい場合は、これを試してください。
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];
于 2012-09-19T04:16:47.477 に答える