2012-09-19 11 views
5

He preparado una aplicación de reloj despertador que usa UILocalnotification para programar la alarma.Ahora después de que se haya configurado la alarma, quiero hacer un cambio para que pueda encenderlo y apagarlo usando UISwitch .Yo no puedo entender cómo puedo hacer eso. Lo que estoy pensando ahora es que cuando apagues la alarma, almacenaré el valor de FECHA y HORA antes de cancelar el UILocalnotification para que cuando el usuario vuelva a encender la alarma I reprogramarlo con los valores DATE y TIME almacenados. ¿Es la manera correcta de hacerlo o hay otras formas de hacerlo?Encendiendo y apagando la alarma ios

Respuesta

7

simplemente haga que la tabla de la base de datos tenga las columnas 'date', 'isCanceled' y id único 'alarmId' (use rest lo que desee). de modo que cuando el usuario quiere cancelar la alarma probar esto,

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

de usar esto mejor que crear su alerta por,

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