簡體   English   中英

從NotificationCenter刪除LocalNotifications(iOS 6)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM