2009-11-26 4 views

Antwort

90

ObjC:

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 

swift:

UIApplication.sharedApplication().applicationIconBadgeNumber = 0; 
+2

Wenn Sie eine API wie Parse.com (ich war) verwenden, müssen Sie wahrscheinlich auch die entfernte Datenbank auf "0" aktualisieren. Anderenfalls wird das Abzeichen ausgeblendet, aber beim nächsten Drücken wird das Abzeichen nicht 0, sondern stattdessen den alten Wert +1 anzeigen. Wie diese Jungs sahen http://stackoverflow.com/questions/13757285/clear-push-notification-badge-after-increment – DelightedD0D

7

Wie für iOS5, nur Einstellung Ausweisnummer werden nicht diejenigen Push-Benachrichtigung im Infozentrum entfernen. Sie müssen dies tun ...

[[UIApplication sharedApplication] cancelAllLocalNotifications]; 
[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 

Ich habe dies bereits getestet. Es sieht aus wie cancelAllLocalNotifications Methode funktioniert auch mit Push-Benachrichtigungen im Benachrichtigungscenter.

+0

Vorsicht mit: cancelAllLocalNotifications. Die Frage bestand darin, Badges von PUSH-Benachrichtigungen zu entfernen, aber diese Option löscht alle lokalen Benachrichtigungen (falls die Anwendung geplant hatte). – Lukasz

+0

Ja, mir ist das bekannt. Laut http://stackoverflow.com/questions/9925854/remove-single-remote-notification-from-notification-center können Sie eine bestimmte Benachrichtigung jedoch nicht selektiv entfernen. Sie können nur alle entfernen. Sie sollten auch in Felixyz's Antwort kommentieren, weil die Verwendung von 'applicationIconBadgeNumber = 0' auch ALLE push + lokalen Benachrichtigungen entfernt, richtig? – Hlung

9

Sie können Abzeichen von Push-Benachrichtigungen entfernen, indem die folgenden Zeilen Code

(void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0; 
} 
1

Swift 3

UIApplication.shared.applicationIconBadgeNumber = 0 

zu folgenden Methoden hinzugefügt werden können:

optional public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool 

und

optional public func applicationDidBecomeActive(_ application: UIApplication)