我可以使用我的应用程序中的预填充数据打开 IOS 日历应用程序的将事件添加到日历屏幕吗?
Can I open the the add event to calendar screen of the IOS calendar app with pre-filled data from my app?
我想在 IOS 日历中添加一个新事件,我知道这可以使用 EventKit 轻松完成。但是我不想直接添加事件,我希望日历应用程序在 "add event" 屏幕上启动,该屏幕预填充了从我的应用程序传递的数据,如所附屏幕截图所示,用户可以拥有用于编辑事件详细信息、保存事件或取消事件的选项。我知道我可以使用 "calshow:" NSURL 和 UIApplication.shared.open 函数启动日历应用程序,但是这只会在我通过它的那一天打开,而不是我想打开的 "add event" 屏幕。
我四处寻找解决方法,但一无所获。
有什么建议吗?
add event screen to be opened when calendar is launched
是的,您可以为此使用 EventKitUI 框架。
使用EKEventEditViewController。
Presented modally, the event edit view controller provides a way for
users to add new events, as well as edit or delete events from their
calendar.
参考:Apple
对于预填充值,请使用 event 属性.
// Create event
var store = EKEventStore()
var event = EKEvent(eventStore: store)
event.title = "Title"
//event.startDate = startDate
//event.endDate = currentEvent?.endDate
let eventViewController: EKEventEditViewController = EKEventEditViewController()
eventViewController.event = event
eventViewController.eventStore = store
eventViewController.editViewDelegate = self
present(eventViewController, animated: true, completion: nil)
我想在 IOS 日历中添加一个新事件,我知道这可以使用 EventKit 轻松完成。但是我不想直接添加事件,我希望日历应用程序在 "add event" 屏幕上启动,该屏幕预填充了从我的应用程序传递的数据,如所附屏幕截图所示,用户可以拥有用于编辑事件详细信息、保存事件或取消事件的选项。我知道我可以使用 "calshow:" NSURL 和 UIApplication.shared.open 函数启动日历应用程序,但是这只会在我通过它的那一天打开,而不是我想打开的 "add event" 屏幕。
我四处寻找解决方法,但一无所获。
有什么建议吗?
add event screen to be opened when calendar is launched
是的,您可以为此使用 EventKitUI 框架。
使用EKEventEditViewController。
Presented modally, the event edit view controller provides a way for users to add new events, as well as edit or delete events from their calendar.
参考:Apple
对于预填充值,请使用 event 属性.
// Create event
var store = EKEventStore()
var event = EKEvent(eventStore: store)
event.title = "Title"
//event.startDate = startDate
//event.endDate = currentEvent?.endDate
let eventViewController: EKEventEditViewController = EKEventEditViewController()
eventViewController.event = event
eventViewController.eventStore = store
eventViewController.editViewDelegate = self
present(eventViewController, animated: true, completion: nil)