2012-09-19 13 views
5

Przygotowałem aplikację Budzik, która używa UILocalnotification do planowania alarmu. Teraz po ustawieniu alarmu chcę ustawić przełącznik tak, aby można go włączyć i wyłączyć za pomocą UISwitch Po prostu nie mogę sobie wyobrazić, jak to zrobić? Teraz myślę, że kiedy wyłączysz alarm, zapamiętuję DATĘ i TIME przed anulowaniem UILocalnotification, tak aby po ponownym włączeniu alarmu I przełożyć go na nowo z zapisanymi wartościami DATE i TIME. Czy jest to właściwy sposób postępowania, czy jest jakiś inny sposób na zrobienie tego?Włączanie i wyłączanie alarmu ios

Odpowiedz

7

wystarczy utworzyć tabelę bazy danych, która ma pola "date", "isCanceled" i unikalne id "alarmId" (użyj odpoczynku, co chcesz). tak, gdy użytkownik chce anulować alarm spróbować,

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]; 

używać tego lepiej utworzyć alarm przez,

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]; 
Powiązane problemy