Ho preparato un'app Alarm Clock che utilizza UILocalnotification
per programmare l'allarme. Ora dopo che l'allarme è stato impostato, voglio fare un interruttore in modo che possa accenderlo e spegnerlo usando UISwitch
Non riesco a capire come posso farlo? Quello che sto pensando ora è che quando si spegne l'allarme, memorizzerò i valori DATE e TIME prima di annullare lo UILocalnotification
in modo che quando l'utente riattiva l'allarme I ripianificarlo con i valori DATE e TIME memorizzati. È il modo giusto di fare o ci sono altri modi per farlo?Accendere e spegnere l'allarme ios
5
A
risposta
7
basta creare la tabella del database che contiene le colonne 'data', 'isCanceled' e univoco 'alarmId' (usa il resto come vuoi). in modo che quando l'utente vuole cancellare l'allarme provare questo,
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];
per utilizzare questo meglio si crea il tuo allarme,
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];