2012-12-26 37 views

Trả lời

58

Bạn nên đặt [UIApplication sharedApplication].applicationIconBadgeNumber = 0; này trong một trong những appdelegate phương pháp nếu ứng dụng được đưa ra và gửi đến nền sau đó bạn khởi động các phương pháp ứng dụng didFinishLaunchingWithOptions sẽ không được gọi là như vậy sử dụng một trong những phương pháp

- (void)applicationWillEnterForeground:(UIApplication *)application 

- (void)applicationDidBecomeActive:(UIApplication *)application 

Đối Swift 3+

- func applicationWillEnterForeground(_ application: UIApplication) 
- func applicationDidBecomeActive(_ application: UIApplication) 
+0

Nơi bạn đang kiểm tra trong Trình mô phỏng hoặc trong thiết bị? – Sumanth

+0

Trong cả hai im nhận được cùng một vấn đề – Deepak

+0

Nếu bạn cố gắng để có được điều phối người dùng trong phương thức 'viewDidLoad()', nó sẽ luôn cho kết quả 0,0, bởi vì CLLocation chưa được khởi tạo. Vì vậy, sử dụng Delegate phương pháp để có được các chi tiết vị trí '- (void) locationManager: (CLLocationManager *) quản lý didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation' – Sumanth

1

Bạn có thể đặt mã đó ở bất kỳ đâu trong mã .. Không quan trọng. Nhưng nói chung, được giữ trong UIApplicationDidFinishLaunching ..

1

Vâng, cách tốt hơn để làm điều này là tạo một hàm trừ số huy hiệu rồi tạo UIButton để cho phép người dùng xóa huy hiệu. Trong ứng dụng thư mặc định, nếu bạn đọc một email, huy hiệu sẽ trừ một email khỏi biểu tượng. Bạn không bao giờ nên đặt nó 0 khi khởi động hoặc tiếp tục, nó là vô nghĩa và làm cho ứng dụng trông điên rồ. Trừ nó khi người dùng tương tác với sự kiện đó là cách tốt nhất để làm điều đó. Làm cho ứng dụng của bạn chuyên nghiệp hơn, nếu bạn chỉ cần đặt lại ứng dụng khi khởi chạy ứng dụng, những người biết giường có nghĩa là gì, cũng có thể không sử dụng nó.

+0

cảm ơn bạn đã bình luận của bạn – Deepak

+1

Tôi hiểu những gì bạn đang nhận được ở đây, nhưng tôi không đồng ý rằng bạn luôn muốn giảm dần ... nhiều ứng dụng sử dụng huy hiệu có nghĩa là "những thứ đã đến kể từ lần cuối bạn sử dụng ứng dụng", nhưng họ không mong đợi bạn đọc tất cả chúng vì một số có thể không thú vị với bạn. Trong trường hợp đó, nó thực sự chỉ là về việc xóa huy hiệu khi họ vào ứng dụng. Có, bạn có thể có mã giảm 10 lần, nhưng điều đó sẽ tẻ nhạt. – TahoeWolverine

+0

Là một người sử dụng, nó cũng làm phiền tôi khi một ứng dụng tiếp tục có một huy hiệu mặc dù không có gì còn lại để đọc. Điều này thường là do một lỗi trong ứng dụng, nhưng dù bằng cách nào, một biểu tượng rõ ràng lúc khởi chạy có thể bỏ qua sự khó chịu này cho người dùng. – TahoeWolverine

1

trong nhanh chóng 3+

trong bạn AppDelegate.Swift, khi ứng dụng của bạn hoạt động rõ ràng tất cả như dưới đây.

func applicationDidBecomeActive(_ application: UIApplication) { 
     UIApplication.shared.applicationIconBadgeNumber = 0 
    } 
0
UIApplication.shared.applicationIconBadgeNumber = 1 
    UIApplication.shared.applicationIconBadgeNumber = 0 
+0

để xóa thông báo của bạn, trước tiên bạn phải tăng số lượng là 0.đó là lỗi ios –

+4

Cảm ơn bạn đã trích đoạn mã này, đoạn mã này có thể cung cấp một số trợ giúp ngay lập tức, hạn chế. [Giải thích đúng sẽ cải thiện đáng kể giá trị lâu dài của nó] (// meta.stackexchange.com/q/114762/350567) bằng cách hiển thị * tại sao * đây là giải pháp tốt cho vấn đề và sẽ giúp ích cho tương lai độc giả với các câu hỏi tương tự khác. Vui lòng [sửa] câu trả lời của bạn để thêm một số giải thích, bao gồm các giả định bạn đã thực hiện. – iBug

Các vấn đề liên quan