如何接受/拒绝EKEvent邀请?

我想允许我的用户在我的应用中接受/拒绝会议邀请。

我认为我需要的是以某种方式更新EKParticipantStatus,但看起来它无法更新。

Apple Docs:Event Kit无法将参与者添加到活动中,也无法更改参与者信息

在这个stackOverflow问题中有人建议带来本机EventKitUI,我试过这样:

class CalendarViewController: UIViewController, EKEventViewDelegate { // ..... let eventController = EKEventViewController() guard let eventWithIdentifier = MeetingsFetcher.eventStoreClass.event(withIdentifier: meeting.UUID) else { return nil } eventController.delegate = self eventController.event = eventWithIdentifier eventController.allowsEditing = true eventController.allowsCalendarPreview = true let navCon = UINavigationController(rootViewController: eventController) // customizing the toolbar where the accept/maybe/decline buttons appear navCon.toolbar.isTranslucent = false navCon.toolbar.tintColor = .blueGreen navCon.toolbar.backgroundColor = .coolWhite10 // customizing the nav bar where the OK button appears navCon.navigationBar.callinAppearence() present(navCon, animated: true, completion: nil) // ..... // view gets dismissed, so it does detects the action, but no effect func eventViewController(_ controller: EKEventViewController, didCompleteWith action: EKEventViewAction) { controller.dismiss(animated: true, completion: nil) } 

本机UI显示非常好,但按钮不会在本机日历中产生任何影响。

在此处输入图像描述

我错过了什么,或者这是不可能的? 如果无法保存任何东西,为什么他们会允许与这些按钮交互?

谢谢!

PD:我在info.plist中拥有这些权限:

  • 隐私 – 日历用法说明
  • 隐私 – 联系人使用说明
  • 隐私 – 提醒使用说明

更新:

请注意, EKEventEditViewController不是我想要的 。 此屏幕不允许我接受或拒绝该事件,它只允许我编辑细节。

在此处输入图像描述

要允许用户创建,编辑或删除事件,请使用EKEventEditViewDelegate协议。

 let eventController = EKEventViewController() guard let eventWithIdentifier = MeetingsFetcher.eventStoreClass.event(withIdentifier: meeting.UUID) else { return nil } eventController.delegate = self eventController.event = eventWithIdentifier eventController.editViewDelegate = self ... 

CalendarViewController类必须符合EKEventEditViewDelegate协议,并且必须实现eventEditViewController方法以关闭模式视图控制器,如下所示:

 func eventEditViewController(_ controller: EKEventEditViewController, didCompleteWith action: EKEventEditViewAction) { switch (action) { case EKEventEditViewActionCanceled: case EKEventEditViewActionSaved: ... } }