我知道有幾個問題here和there關於如何刪除本地通知可能是全部或特定通知。我也通過了local notification class reference,並找到了一些方法如重複的時間間隔,火災日期,警報主體,時區等...但我無法找到一些有關如何修改已設置的火災日期的信息。如果用戶設置通知的日期今天和下午4:50,但如果用戶希望修改設定的日期/時間,那麼發生的情況是兩種情況都會觸發通知。就編程倫理而言,這是一個錯誤!更新本地通知的開火日期並取消之前的通知
其實我想要的是以前的通知必須被取消,即日期必須修改編輯的一個通知,應設置併發射了新的日期。
我這是怎麼設置的通知,示例代碼:
- (void)setNotification
{
//Set notification after confirmation of saved data
Class cls = NSClassFromString(@"UILocalNotification");
reminderNotification = [[cls alloc] init];
if (cls != nil)
{
NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *notificationDate = [dateFormat dateFromString:textField2.text];
reminderNotification.fireDate = notificationDate;
reminderNotification.timeZone = [NSTimeZone defaultTimeZone];
NSString *reminderText = [NSString stringWithFormat:@"%@ 's %@ on %@",textField.text,textField1.text,strDate];
reminderNotification.alertBody = reminderText;
reminderNotification.alertAction = @"View";
reminderNotification.soundName = @"lazy_afternoon.mp3";
reminderNotification.applicationIconBadgeNumber = 1;
NSDictionary *userDict = [NSDictionary dictionaryWithObject:self.textField1.text forKey:kReminder];
reminderNotification.userInfo = userDict;
[[UIApplication sharedApplication] scheduleLocalNotification:reminderNotification];
[reminderNotification release];
}
}
任何一個可以請指導我如何處理這個任務的正確的道路。
感謝所有提前:)
一個小疑問,可以申報通知ID與進度表通知,而不是把它放在方法本身:) –
,因爲我需要調用[自我scheduleNotification]在保存按鈕的動作,如果我把它寫這樣的話,我怎麼能訪問所有這些變量,並將其放置在方法本身:( –
讓我好好想想,你有[自scheduleNotification]的fireDate和alertBody內容的方法,這樣你就可以把上面的方法 - (空)scheduleNotificationForNotificationID:(的NSString *)notificationID;忽略你已經有了這些參數,您可以在保存按鈕作爲方法[自scheduleNotificationForNotificationID:@「yourUniqueId」]; – Bala