Как удалить локальное уведомление в iPhone - PullRequest
18 голосов
/ 30 июля 2010

Я делаю приложение, которое устанавливает локальное уведомление.

К счастью, мне удалось установить локальное уведомление, но я не знаю, как удалить уведомление, установленное моим приложением.

XCode обеспечивает функцию удаления с помощью removeAllNotifications, но вы не можете удалить определенные уведомления, установленные приложением.

Большое спасибо.

Ответы [ 4 ]

71 голосов
/ 07 августа 2010

Вы задавали этот вопрос дважды, поэтому я отвечаю на оба вопроса в надежде, что он достигнет вас:

Отмените все локальные уведомления с этим кодом:

[[UIApplication sharedApplication] cancelAllLocalNotifications];

Отмените одно локальное уведомление с этой строкой кода:

[[UIApplication sharedApplication] cancelLocalNotification:theNotification];

, где theNotification - это UILocalNotification объект, поэтому для отмены определенного уведомления вам нужно удерживать его UILocalNotification.


Больше информации вы найдете в документации Apple .

12 голосов
/ 30 июля 2010
[[UIApplication sharedApplication] cancelLocalNotification:notification]
2 голосов
/ 31 марта 2016

привет, смотрите, в swift вы можете создать локальное уведомление:

var notif = UILocalNotification()
        notif.timeZone = NSTimeZone.defaultTimeZone()

        let morningOfChristmasComponents = NSDateComponents()
        morningOfChristmasComponents.year = 2016
        morningOfChristmasComponents.month = 03
        morningOfChristmasComponents.day = 30
        morningOfChristmasComponents.hour = 15
        morningOfChristmasComponents.minute = 59
        morningOfChristmasComponents.second = 0

        let morningOfChristmas = NSCalendar.currentCalendar().dateFromComponents(morningOfChristmasComponents)!

        let formatter = NSDateFormatter()
        formatter.dateStyle = NSDateFormatterStyle.LongStyle
        formatter.timeStyle = .MediumStyle

        let dateString = formatter.stringFromDate(morningOfChristmas)

        notif.fireDate = morningOfChristmas
        notif.alertBody = "alarma wolf"
        notif.userInfo = ["identificador": "wolf"]
        UIApplication.sharedApplication().scheduleLocalNotification(notif)
        print("alarma fijada para \(dateString)")

Из-за того, что userInfo является независимым для вас локальным уведомлением, теперь, если вы хотите удалить конкретное локальное уведомление, попробуйте:

var uidtodelete = "wolf"
        var app:UIApplication = UIApplication.sharedApplication()
        for oneEvent in app.scheduledLocalNotifications! {
            var notification = oneEvent as UILocalNotification
            let userInfoCurrent = notification.userInfo! as! [String:AnyObject]
            let uid = userInfoCurrent["identificador"]! as! String
            if uid == uidtodelete {
                //Cancelling local notification
                app.cancelLocalNotification(notification)
                break;
            }
        }

посмотрите метод выше, userInfoCurrent - это идентификатор вашего локального уведомления, а uitodelete - строка, содержащая определенный ключ уведомления locla, который вы хотите удалить ...

аааа ... если вы хотите удалить все локальные уведомления, вы можете использовать

UIApplication.sharedApplication (). CancelAllLocalNotifications ()

ок

Я надеюсь, что вы служите себе или кому-то еще этой информации ..

до свидания, и простите мой плохой английский

1 голос
/ 15 октября 2010

Вы можете отменить уведомление с помощью следующей функции: [[UIApplication sharedApplication]cancelNotification:object Of your UILocalNotification]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...