![](/img/trans.png)
[英]Does iOS invalidates localNotifications if the user modifies the date/time
[英]Deleting LocalNotifications from NotificationCenter (iOS 6)
我在管理LocalNotifications的一個方面遇到問題 - 在iOS 6中刪除單個通知。
我能夠創建一個帶有文本內容和開火日期的LocalNotification並且它可以工作。
在iOS 5上,通知在主屏幕上顯示為帶有兩個按鈕的AlertView,並在觸摸后消失。 我可以使用[[UIApplication sharedApplication] cancelLocalNotification:theNotification]
取消通知之火。 這里沒有問題。
在iOS 6中,通知發生在Notificaton Center中,如上所示。 如果我使用[[UIApplication sharedApplication] cancelLocalNotification:theNotification]
取消它,它將不會觸發 - 它可以工作。 但在它發射之后......
我的問題:
我無法從通知中心刪除此單個已解雇的通知。 例如,我希望通知在觸摸后消失,或者在應用程序內部執行某些操作后消失。
我嘗試了什么:
[[UIApplication sharedApplication] cancelLocalNotification:theNotification]
- 取消通知觸發(實際上沒有必要,因為通知已經觸發),但不會刪除通知中心發出的通知 [[UIApplication sharedApplication] scheduledLocalNotifications]
數組中刪除項目 - 不起作用,因為無論設置了多少(工作!)通知,此函數總是返回空數組(有人知道為什么嗎?) 我現在在做什么
我正在使用[[UIApplication sharedApplication] cancelAllLocalNotifications]
刪除所有通知 - 它取消它們並從通知中心刪除,然后創建它們,沒有我想要刪除的那個。
正如你所看到的,這是相當愚蠢和冗余的解決方案,但到目前為止我找不到更好的結果。
有什么建議?
試試這個.....可能是這個幫助...從你要清除所有通知的地方寫下這段代碼。
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
刪除一個通知
您可以從以下位置獲取一系列預定通知: @property(nonatomic,copy) NSArray *scheduledLocalNotifications
通過您選擇的索引號獲取您想要的那個,然后將UILocalNotification *傳遞給- (void)cancelLocalNotification:(UILocalNotification *)notification.
您可以在本地通知的userinfo中為密鑰保存唯一值。 獲取所有本地通知,遍歷數組並刪除特定通知。
代碼如下,
UIApplication *app = [UIApplication sharedApplication];
NSArray *eventArray = [app scheduledLocalNotifications];
for (int i=0; i<[eventArray count]; i++)
{
UILocalNotification* oneEvent = [eventArray objectAtIndex:i];
NSDictionary *userInfoCurrent = oneEvent.userInfo;
NSString *uid=[NSString stringWithFormat:@"%@",[userInfoCurrent valueForKey:@"uid"]];
if ([uid isEqualToString:uidtodelete])
{
//Cancelling local notification
[app cancelLocalNotification:oneEvent];
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.