2013-07-29 59 views
5

Tôi đang cố lên lịch một số UILocalNotification giây và tôi cần có quyền truy cập vào các thông báo đã được tạo.Lấy danh sách UILocalNotifications hiện có và sửa đổi ngày của họ

Có thể tạo danh sách/mảng của tất cả các UILocalNotification được tạo không? Tôi có thể chỉnh sửa ngày báo cháy của thông báo địa phương hiện tại không?

Đây là mã tôi sử dụng để tạo ra các thông báo địa phương:

UILocalNotification* localNotification = [[UILocalNotification alloc] init]; 
localNotification.fireDate = pickerDate; 
localNotification.alertBody = textFieldName.text; 
localNotification.alertAction = @"Item date expired!"; 
localNotification.timeZone = [NSTimeZone defaultTimeZone]; 
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1; 

Trả lời

14

bạn có thể nhận được tất cả UILocalNotifications với mã dưới đây

UIApplication* objApp = [UIApplication sharedApplication]; 
NSArray* oldNotifications = [objApp scheduledLocalNotifications]; 

và cũng có thể bạn có thể hủy bỏ rằng thông báo với mã dưới đây ..

if ([oldNotifications count] > 0) 
    [objApp cancelAllLocalNotifications]; 

Cũng thấy một bản demo cơ bản với hướng dẫn cho UILocalNotification từ bên dưới liên kết

iphone-programming-tutorial-local-notifications

6

để lấy thông báo hiện tại

NSArray *currentNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications]; 

chỉnh sửa nội dung của mảng này (bạn có thể phải tạo một bản sao có thể thay đổi đầu tiên) và sau đó đặt lại bằng cách sử dụng

[[UIApplication sharedApplication] setScheduledLocalNotifications:myNotifications]; 

myNotifications chứa cả pendi cũ ng thông báo và những cái mới của bạn, nó sẽ ghi đè lên các giá trị cũ, vì vậy bằng cách chỉnh sửa fireDate của các đối tượng UILocalNotification trong mảng này, bạn có thể thay đổi ngày chúng sẽ được kích hoạt.

4

Tôi nghĩ bạn muốn điều này.

[[UIApplication sharedApplication] scheduledLocalNotifications] 
1

Có, bạn có thể nhận được tất cả các danh sách thông báo địa phương từ bên dưới tuyên bố:

[[UIApplication sharedApplication] scheduledLocalNotifications]; 

Và Đối với chỉnh sửa, tôi đã không thử nó nhưng có, có thể có thể sửa đổi ngày ngọn lửa của thông báo. Nhưng đề nghị của tôi là, có được tất cả các chi tiết khác của thông báo và xóa và tạo lại thông báo mới.

Cảm ơn