Подтвердить что ты не робот

Как удалить локальное уведомление в iPhone

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

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

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

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

4b9b3361

Ответ 1

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

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

[[UIApplication sharedApplication] cancelAllLocalNotifications];

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

[[UIApplication sharedApplication] cancelLocalNotification:theNotification];

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


Вы можете найти больше информации в документации по яблоко.

Ответ 2

[[UIApplication sharedApplication] cancelLocalNotification:notification]

Ответ 3

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

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)")

loo userInfo - это indeitifer для вашего локального уведомления, теперь, если вы хотите удалить конкретное локальное уведомление, попробуйте:

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, который вы хотите удалить...

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

UIApplication.sharedApplication(). CancelAllLocalNotifications()

oki

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

до свидания, и неудачный мой плохой английский

Ответ 4

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