PMT*_*PMT 4 calendar ios eventkit ekevent swift
我希望我的应用程序的用户能够接受/拒绝他们日历的活动邀请。为此,我尝试使用 EventKitUI 组件启动事件,并允许用户在不离开我的应用程序的情况下更新事件。 问题是每当我将 EKEvent 分配给 EKEventViewController 时它就会崩溃。
我想要的是:
要显示类似于本机 iOS 日历中的视图,它应该如下所示:
我拥有的:
import UIKit
import EventKitUI
class CalendarViewController: UIViewController, EKEventViewDelegate, EKEventEditViewDelegate {
var meetingID = "id"
override func viewDidLoad() {
super.viewDidLoad()
//self.showEditEvent(meeting: meetingID)
self.showInvite(meeting: meetingID)
}
func showInvite(meeting: Meeting){
let evc = EKEventViewController()
var event = EKEvent(eventStore: MeetingsFetcher.eventStoreClass)
event = MeetingsFetcher.eventStoreClass.event(withIdentifier: meetingID)!
evc.delegate = self
evc.event = event
evc.allowsEditing = true
evc.allowsCalendarPreview = true
self.screen.present(evc, animated: true, completion: nil)
}
func eventViewController(_ controller: EKEventViewController, didCompleteWith action: EKEventViewAction) {
controller.dismiss(animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
大问题: 每当我将 EKEvent 分配给 evc.event 时,它都会因为隐私侵犯问题而崩溃。请注意,我确实有权访问日历。
因侵犯隐私而崩溃
evc.event = event
Run Code Online (Sandbox Code Playgroud)
边注
但是使用 EKEventEditViewController() 打开会议的编辑视图确实有效,这证明了这一点。
所以这段代码有效,但这不是我要找的视图:
func showEditEvent(meeting: Meeting){
let evc = EKEventEditViewController()
evc.eventStore = MeetingsFetcher.eventStoreClass
var event = EKEvent(eventStore: MeetingsFetcher.eventStoreClass)
event = MeetingsFetcher.eventStoreClass.event(withIdentifier: meeting.UUID!)!
evc.event = event
evc.editViewDelegate = self
self.screen.present(evc, animated: true, completion: nil)
}
func eventEditViewController(_ controller: EKEventEditViewController, didCompleteWith action: EKEventEditViewAction) {
controller.dismiss(animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)