Я пытаюсь настроить ежедневные повторные уведомления с помощью swift.
Я могу настроить уведомление с помощью
var dateComponents = DateComponents()
dateComponents.hour = 17
dateComponents.minute = 00
Но я хочу, чтобы пользователь мог это изменить, я настроил средство выбора даты и изменил его только на время
В окне выбора даты я смог его сохранить, выполнив следующее
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
loadDate(animation: true)
}
func saveDate() {
UserDefaults.standard.set(TimePicker.date, forKey:dateKey)
}
func loadDate(animation: Bool) {
guard let loadedDate = UserDefaults.standard.object(forKey: dateKey) as? NSDate else { return }
TimePicker.setDate(loadedDate as Date, animated: animation)
}
Как передать выбранные часы и минуты времени уведомления? Кроме того, как бы я мог преобразовать время в 24 часа таким образом, если они выберут 5 вечера, он перейдет к компоненту даты как 17?
Спасибо за любую помощь
Вот так у меня есть контроллер вида. Внутри viewdidload. и тогда указатель времени находится внутри другого контроллера вида
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound ]){(grandted,error)in }
let content = UNMutableNotificationContent()
content.title = "Title"
content.body = "Body"
var dateComponents = DateComponents()
dateComponents.hour = 17
dateComponents.minute = 18
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
let uuidstring = UUID().uuidString
let request = UNNotificationRequest(identifier: uuidstring, content: content, trigger: trigger)
center.add(request) {(error) in}