2009-11-26 49 views

Trả lời

90

ObjC:

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 

nhanh chóng:

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

Nếu bạn sử dụng API như Parse.com (tôi), bạn có thể cũng phải cập nhật cơ sở dữ liệu từ xa thành "0". Nếu không, cài đặt cục bộ sẽ ẩn huy hiệu nhưng khi lần đẩy tiếp theo huy hiệu sẽ không hiển thị 0 nhưng thay vào đó hiển thị giá trị cũ +1. Như những người này đã thấy http://stackoverflow.com/questions/13757285/clear-push-notification-badge-after-increment – DelightedD0D

7

Đối với iOS5, chỉ cần thiết lập số huy hiệu sẽ không loại bỏ các thông báo đẩy trong trung tâm thông báo. Bạn phải làm điều này ...

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

Tôi đã thử nghiệm điều này. Có vẻ như phương thức cancelAllLocalNotifications cũng hoạt động với các thông báo đẩy trong trung tâm thông báo.

+0

Cẩn thận với: cancelAllLocalNotifications. Câu hỏi là để loại bỏ phù hiệu từ thông báo PUSH nhưng điều này sẽ loại bỏ tất cả các thông báo địa phương (là applicaiton đã lên kế hoạch bất kỳ). – Lukasz

+0

Vâng, tôi biết điều đó. Nhưng theo http://stackoverflow.com/questions/9925854/remove-single-remote-notification-from-notification-center, bạn không thể xóa có chọn lọc một thông báo cụ thể. Bạn chỉ có thể xóa tất cả. Bạn cũng nên comment trong câu trả lời của Felixyz vì sử dụng 'applicationIconBadgeNumber = 0' cũng sẽ loại bỏ TẤT CẢ các thông báo push + local, phải không? – Hlung

9

Bạn có thể loại bỏ huy hiệu từ thông báo đẩy bằng cách thêm các dòng sau vào code của bạn

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

Swift 3

UIApplication.shared.applicationIconBadgeNumber = 0 

có thể được bổ sung vào phương pháp sau đây:

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

optional public func applicationDidBecomeActive(_ application: UIApplication) 
Các vấn đề liên quan