【问题标题】:Can I open the the add event to calendar screen of the IOS calendar app with pre-filled data from my app?我可以使用我的应用程序中的预填充数据打开 IOS 日历应用程序的添加事件到日历屏幕吗?
【发布时间】:2019-07-25 09:28:29
【问题描述】:

我想在 IOS 日历中添加一个新事件,我知道这可以使用 EventKit 轻松完成。但是我不想直接添加事件,我希望在“添加事件”屏幕中启动日历应用程序,该屏幕预填充从我的应用程序传递的数据,如随附的屏幕截图所示,并且用户可以选择编辑活动详情、保存活动或取消活动。我知道我可以使用“calshow:”NSURL 和 UIApplication.shared.open 函数启动日历应用程序,但这只会打开我通过它的那一天,而不是我想打开的“添加事件”屏幕。

我到处寻找方法,但一无所获。

有什么建议吗?

add event screen to be opened when calendar is launched

【问题讨论】:

    标签: ios swift ekeventkit


    【解决方案1】:

    是的,您可以为此使用EventKitUI 框架。

    使用 EKEventEditViewController

    以模态方式呈现,事件编辑视图控制器提供了一种方式 用户添加新事件,以及编辑或删除他们的事件 日历。

    参考: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)
    

    【讨论】:

    • 我遇到了一个错误:“使用未声明的类型 'EKEventEditViewController'”,即使我已经导入了 EventKit 库
    • 刚刚导入 EventKitUI 库,错误消失了,但是我遇到了另一个错误:“无法调用非函数类型 'EKEventEditViewController' 的值”
    • 我刚刚意识到这是因为我的类不是 UIViewController 类型,我改变了它并且能够构建,但是它没有显示 eventViewController
    • @HannahSaud:从你的视图控制器展示它。更新答案
    • 谢谢,现在可以使用了。但是我无法编辑日期和时间,添加和取消按钮什么也不做。我必须手动处理它们吗?如果是这样,我该怎么做?我检查了 EKEventEditViewController 中的功能,但没有发现任何与允许编辑日期或向取消和添加按钮添加操作相关的内容。
    猜你喜欢
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2011-07-24
    • 2022-10-07
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多