我们有一个iPhone应用程序,可让人们配置事件。人们可以选择活动的日期,但不能选择小时。为此,我们已将其连接到iCalendar。目前,当我们进入活动页面时...我们只需按下iCalendar图标,iCalendar就会自动在日历的同一天打开...我们必须选择小时+输入活动的名称。所以我们复制(放两次)事件的名称......一个在我们的应用程序中,另一个在Icalendar中。
我可以以这样的方式进行iCalendar的调整,以便当按下Icalendar按钮时...它会在给定日期打开我的日历..然后当我选择小时时......事件的名称还放了?
配置此项的最佳方法是什么,这样我们就不必将事件信息放两次。谢谢你让我知道。
答案 0 :(得分:0)
首先需要导入EventKitUI,如:
导入EventKitUI
并添加委托:EKEventEditViewDelegate
并添加以下代码以打开新的事件屏幕,传递数据为:
let eventStore = EKEventStore()
eventStore.requestAccess(to: .event, completion: {(_ granted: Bool, _ error: Error?) -> Void in
if granted {
let event = EKEvent(eventStore: eventStore)
event.title = "My Event Test 1"
//event.location = location;
event.startDate = Date()
event.endDate = event.startDate.addingTimeInterval(60 * 30)
//event.notes = notes;
let controller = EKEventEditViewController()
controller.eventStore = eventStore
controller.event = event
controller.editViewDelegate = self
self.present(controller, animated: true, completion: { _ in })
}
})
根据用户操作处理响应:
func eventEditViewController(_ controller: EKEventEditViewController, didCompleteWith action: EKEventEditViewAction) {
switch (action) {
case .canceled:
// User tapped "cancel"
break;
case .saved:
// User tapped "save"
break;
case .deleted:
// User tapped "delete"
break;
}
self.dismiss(animated: true, completion: nil)
}