2012-04-29 29 views
5

Tôi có một truy vấn đơn giản nhưng không biết cách thực hiện.Làm cách nào để thay đổi nhãn có ngày sau khi ngày hệ thống thay đổi trong iOS?

Đây là những gì tôi đang cố gắng đạt được: 1) Tôi có một UILabel với ngày hôm nay tức là "29/04/12" 2) Vào nửa đêm tôi muốn nhãn đó tự cập nhật thành "30/04/12 "mà không cần thay đổi chế độ xem hoặc nhấn bất kỳ thứ gì.

Bước 2 mà tôi không biết phải làm. Tôi có ý tưởng về cách nó sẽ được thực hiện như có khả năng nhận được một thông báo hệ thống của sự thay đổi ngày (nếu điều này thậm chí có thể) hoặc sử dụng một số loại bộ đếm thời gian như là một kích hoạt.

Bất kỳ trợ giúp nào sẽ được đánh giá cao, cảm ơn trước.

+1

Có vấn đề với 'ngày NSData'? – Legolas

+0

@Legolas Xin lỗi tôi không biết phải làm gì trong câu hỏi của bạn, ngày 'NSData' có thể làm gì cho tôi về việc cập nhật vào nửa đêm? – msec

+0

Ứng dụng của bạn không thể tự cập nhật trong nền vì những lý do rõ ràng với tính năng đa nhiệm ios. Bạn rất có thể sẽ cập nhật chế độ xem của mình khi ứng dụng đang chạy hoặc khi người dùng xem nó. Bạn chỉ có thể cập nhật nhãn với 'NSDate date'. – Legolas

Trả lời

11

Nếu bạn chỉ muốn được thông báo khi nửa đêm đến (hoặc một vài trường hợp khác), bạn có thể ghi đè phương thức - (void)applicationSignificantTimeChange:(UIApplication *)application của UIApplicationDelegate để làm cho nhãn của bạn cập nhật. Tất nhiên, bạn cũng sẽ muốn cập nhật các nhãn bất cứ khi nào ứng dụng nhập lại tiền cảnh, vì phương pháp này sẽ không được gọi nếu ứng dụng của bạn ở chế độ nền khi ngày thay đổi.

+3

+1, đây là ví dụ tốt về cách thực hiện điều này: http://stackoverflow.com/questions/4145985/help-changing-nstimer-for-textlabel-code-included/4146345#4146345 – lnafziger

+1

Tài liệu nói: * * Nếu ứng dụng của bạn hiện đang bị tạm ngưng, thông báo này được xếp hàng đợi cho đến khi ứng dụng của bạn quay trở lại nền trước, tại thời điểm nó được gửi đi. ** do đó ứng dụng sẽ được gọi khi ứng dụng nhập lại tiền cảnh – Jin

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