如何从iOS中将参数传递给iCalendar Swift
问题描述:
我们有一个iPhone应用程序,可以让人们配置事件。人们可以选择事件的日期,但不能选择小时。为此,我们已将它连接到iCalendar。目前,当我们在活动页面上时,我们只需按下iCalendar图标并自动iCalendar在日历的同一日期打开...我们必须选择小时+将事件的名称。所以我们重复(放两次)事件的名字......一个在我们的应用程序中,另一个在Icalendar中。如何从iOS中将参数传递给iCalendar Swift
我可以让iCalendar以这种方式进行组合,这样当一个人按下Icalendar按钮时......它会在给定的日期打开我的日历..然后当我选择小时时......名称事件也被放置?
什么是配置该让我们没有把事件信息两倍的最佳途径。谢谢fopr让我知道。
答
首先需要导入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)
}
EventKit会让从来没有离开你的应用程序建立在苹果的日历事件。 –
@DavidShaw谢谢,但Eventkit不允许在添加事件后进行更改 –