Как удалить локальное уведомление в iPhone
Я делаю приложение, которое устанавливает локальное уведомление.
К счастью, мне удалось установить локальное уведомление, но я не знаю, как удалить уведомление, которое установлено моим приложением.
XCode предоставляет функциональность удаления с помощью removeAllNotifications
, но вы не можете удалить определенные уведомления, установленные приложением.
Большое спасибо.
Ответы
Ответ 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]