2016-11-10 1 views
-1

Ich plane UILocalNotification mit repeatInterval = jeden Tag, aber ich möchte bestimmte Benachrichtigung abbrechen, zum Beispiel Benachrichtigung übermorgen. Kann ich das machen?Wie können bestimmte wiederholte UILocalNotification abgebrochen werden?

+0

Iterieren Sie die geplanten Benachrichtigungen in 'UIApplication.shard(). PlanedLocalNotifications' und überprüfen Sie das' fireDate' bei jeder Benachrichtigung. Wenn das 'fireDate' mit demjenigen übereinstimmt, das Sie abbrechen möchten, entfernen Sie die Benachrichtigung. – Wes

+0

@Wes In "geplanteNotifikationen" ist nur eine Benachrichtigung. Es gibt keine Zukunft Benachrichtigungen, so kann ich nicht vergleichen eine gefeuert – Gikas

Antwort

1

Kann ich das tun

Nein, wenn dies als Wiederholungs tägliche Benachrichtigung konfiguriert wurde, kann man nicht auf magische Weise eine Wiederholung von ihr entfernen können. Sie müssten die gesamte Benachrichtigung abbrechen und den Tag übermorgen neu beginnen.

+0

Vielen Dank .. UILocalNotification nicht flexibel genug für meine Aufgabe .. – Gikas

+0

Nun, es wird nicht durch Magie, wenn das ist, was Sie meinen. Es ist Ihr Code, der flexibel sein muss. Zum Beispiel, wenn Sie für jeden Tag separate Benachrichtigungen hatten, dann könnten Sie eine entfernen. – matt

0
UILocalNotification* localNotification = [[UILocalNotification alloc] init]; 

    localNotification.fireDate = [[NSDate date] dateByAddingTimeInterval:100]; 

    localNotification.timeZone = [NSTimeZone defaultTimeZone]; 

    localNotification.soundName = UILocalNotificationDefaultSoundName; 

    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 

jetzt alle Benachrichtigungen aufgelistet, die Sie hinzugefügt haben.

-(void)localNotifcationList{ 
    UIApplication *app = [UIApplication sharedApplication]; 
    NSArray *eventArray = [app scheduledLocalNotifications]; 
    for (int i=0; i<[eventArray count]; i++) 
    { 
     UILocalNotification* yourEventSequence = [eventArray objectAtIndex:i]; 
     NSDictionary *userInfoCurrent = yourEventSequence.userInfo; 
     NSString *uid=[NSString stringWithFormat:@"%@",[userInfoCurrent valueForKey:@"uid"]]; 
     //Based on your userinfo cancel particular notification. 
// You can also compare fire date here 
} 

Ich hoffe, dass dieser Code funktioniert.

Verwandte Themen