According to this topic:
How to clear badge number while preserving notification center
setting:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1];
should do the trick.
Question
In my app, I'm receiving push notifications with badge number set to one. When app will start, it should set badges count to 0, so I'm using:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
And it works, but also it removes all notifications from notifications center.
Is there a way to clear badges without removing notifications?
Solution
According to this topic:
How to clear badge number while preserving notification center
setting:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1];
should do the trick.
OTHER TIPS
With iOS9 directly setting badge to negative still clears notifications. You must fire empty UILocalNotification with negative badgenumber to achieve this.
let ln = UILocalNotification()
ln.applicationIconBadgeNumber = -1
UIApplication.sharedApplication().presentLocalNotificationNow(ln)
@feb for ios 9+ you need to set 0 not -1 for that you need to add version condition
if #available(iOS 9.0, *) {
UIApplication.shared.applicationIconBadgeNumber = 0
}else{
UIApplication.sharedApplication().applicationIconBadgeNumber = -1
}