我有一个简单的应用,我想在EKEventViewController中呈现一个事件。
// the button action which validates if the event store access is granted and presents the given alert if true
@IBAction func actionButtonShowPopover(_ sender: Any) {
eventStore.requestAccess(to: .event) { (granted, _) in
guard granted else { return }
let event = self.generateAndSaveEvent()
self.presentEventViewController(withEvent: event)
}
}
// creates and tries to save an sample even and returns it
private func generateAndSaveEvent() -> EKEvent {
let event = EKEvent(eventStore: eventStore)
event.title = "Event Title"
event.startDate = Date()
event.endDate = Date().addingTimeInterval(1800)
event.calendar = eventStore.defaultCalendarForNewEvents
do {
try eventStore.save(event, span: .thisEvent)
} catch(let error) {
print(error)
}
return event
}
// displays an EKEventViewController with our newly created event within an popover
private func presentEventViewController(withEvent event: EKEvent) {
DispatchQueue.main.async {
let eventVC = EKEventViewController()
eventVC.event = event
eventVC.allowsEditing = true
eventVC.modalPresentationStyle = .popover
eventVC.popoverPresentationController?.sourceView = self.buttonShowPopover
eventVC.popoverPresentationController?.sourceRect = self.buttonShowPopover.frame.offsetBy(dx: 0, dy: -10)
eventVC.popoverPresentationController?.backgroundColor = .white
eventVC.popoverPresentationController?.permittedArrowDirections = .up
self.present(eventVC, animated: false, completion: nil)
}
}
i创建了一个事件,如上面的代码所示,并将其简单地显示在弹出视图控制器中。由于ios 13我得到了不同的结果:
我是否有可能错过iOS12-> iOS13的更改?预先感谢-我非常感谢您提供任何建议!
[编辑按钮已移至iOS 13中的导航栏。您需要以没有弹出样式的方式显示它。