2013-07-29 1 views
5

Sto provando a programmare più UILocalNotification s, e ho bisogno di avere accesso alle notifiche già create.Ottenere un elenco di UILocalNotifications esistenti e modificare le loro date

E 'possibile avere una lista/matrice di tutti i UILocalNotification s creati? Posso modificare la data dell'incendio di una notifica locale esistente?

Questo è il codice che uso per la creazione di notifiche locali:

UILocalNotification* localNotification = [[UILocalNotification alloc] init]; 
localNotification.fireDate = pickerDate; 
localNotification.alertBody = textFieldName.text; 
localNotification.alertAction = @"Item date expired!"; 
localNotification.timeZone = [NSTimeZone defaultTimeZone]; 
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1; 

risposta

14

è possibile ottenere tutte UILocalNotifications con sottostante Codice

UIApplication* objApp = [UIApplication sharedApplication]; 
NSArray* oldNotifications = [objApp scheduledLocalNotifications]; 

e inoltre è possibile annullare che notifica con il codice di muggito ..

if ([oldNotifications count] > 0) 
    [objApp cancelAllLocalNotifications]; 

vedere anche una demo di base con esercitazione per UILocalNotification dal link sottostante

iphone-programming-tutorial-local-notifications

6

per recuperare le notifiche attuali

NSArray *currentNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications]; 

modificare il contenuto di questo array (potrebbe essere necessario creare una copia mutabile prima) e quindi ripristinarlo utilizzando

[[UIApplication sharedApplication] setScheduledLocalNotifications:myNotifications]; 

myNotifiche contenenti sia il vecchio pendi ng notifiche e quelle nuove, sostituirà i vecchi valori, quindi modificando il fireDate degli oggetti UILocalNotification in questo array è possibile modificare la data in cui verranno generati.

4

Penso che tu voglia questo.

[[UIApplication sharedApplication] scheduledLocalNotifications] 
1

Sì, è possibile ottenere tutti gli avvisi sui locali dal basso dichiarazione:

[[UIApplication sharedApplication] scheduledLocalNotifications]; 

E per la modifica, non ho provato, ma sì, è possibile sono in grado di modificare la data fuoco della notifica. Ma il mio suggerimento è, ottenere tutti gli altri dettagli di notifica ed eliminare e ricreare nuove notifiche.

Grazie