【发布时间】:2023-04-02 00:11:02
【问题描述】:
我正在尝试使用 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)
}
如何将小时和分钟选择的内容传递到通知时间?另外,如果他们选择下午 5 点,我将如何将时间转换为 24 小时,它会将日期组件设置为 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}
【问题讨论】:
标签: swift xcode uidatepicker timepicker localnotification