Sé que hay algunas preguntas here y there con respecto a cómo eliminar una notificación local que podría ser una o una notificación en particular.También he pasado por el local notification class reference y encontré algunos métodos como intervalo de tiempo de repetición, fecha de inicio de sesión, cuerpo de alerta, zona horaria, etc. ... pero no puedo encontrar algún tipo de información sobre cómo modificar la fecha de inicio ya establecida. Diga si el usuario establece una notificación con fecha hoy y a las 4:50 p.m., pero si el usuario desea modificar la fecha/hora establecida, lo que está sucediendo es que la notificación se activa en ambas ocasiones. ¡Lo cual es un error en cuanto a la ética de la programación!Actualizar la fecha de inicio para la notificación local y cancelar la notificación anterior
En realidad, lo que quiero es que se cancele la notificación anterior, es decir, la fecha debe modificarse para ser editada y la notificación debe establecerse y activarse en la nueva fecha.
Éste es cómo programar la notificación, código de ejemplo:
- (void)setNotification
{
//Set notification after confirmation of saved data
Class cls = NSClassFromString(@"UILocalNotification");
reminderNotification = [[cls alloc] init];
if (cls != nil)
{
NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *notificationDate = [dateFormat dateFromString:textField2.text];
reminderNotification.fireDate = notificationDate;
reminderNotification.timeZone = [NSTimeZone defaultTimeZone];
NSString *reminderText = [NSString stringWithFormat:@"%@ 's %@ on %@",textField.text,textField1.text,strDate];
reminderNotification.alertBody = reminderText;
reminderNotification.alertAction = @"View";
reminderNotification.soundName = @"lazy_afternoon.mp3";
reminderNotification.applicationIconBadgeNumber = 1;
NSDictionary *userDict = [NSDictionary dictionaryWithObject:self.textField1.text forKey:kReminder];
reminderNotification.userInfo = userDict;
[[UIApplication sharedApplication] scheduleLocalNotification:reminderNotification];
[reminderNotification release];
}
}
Puede alguno por favor me guía en el camino correcto sobre cómo hacer frente a esta tarea.
Gracias a todos de antemano :)
Una pequeña duda, puedo declarar el ID de notificación en la notificación de programación en lugar de colocarlo en el método :) –
Porque necesito llamar [self scheduleNotification] en la acción del botón Guardar, si lo escribo, ¿cómo puedo acceder? todas esas variables y colocarlo en el método en sí :( –
permítame considerar que tiene el contenido fireDate y alertBody en el método [self scheduleNotification], por lo que puede reescribir el método anterior como - (void) scheduleNotificationForNotificationID: (NSString *) notificationID; ignorando esos parámetros que ya tienes, y puedes usar ese método en el botón de guardar como [self scheduleNotificationForNotificationID: @ "yourUniqueId"]; – Bala