Проблема
Я представляю EKEventEditViewController
представление с некоторой предопределенной информацией. Если пользователь не хочет изменять эту информацию, он должен нажать «Добавить», чтобы добавить событие в календарь.
Проблема в том, что кнопка «Добавить» по умолчанию отключена. Он включается только в том случае, если пользователь изменяет что-либо (например, имя события или календарь).
Фрагмент кода
class EventManager {
private var eventEditViewController: EKEventEditViewController?
private let eventStore = EKEventStore()
func addToCalendar(_ eventData: EventData) {
let event = createEvent(eventData)
presentEvent(event)
}
private func createEvent(_ eventData: EventData) -> EKEvent {
let event = EKEvent(eventStore: eventStore)
event.title = "My event"
event.startDate = Date()
event.endDate = Date()
event.isAllDay = true
event.calendar = eventStore.defaultCalendarForNewEvents
event.availability = .free
event.addAlarm(EKAlarm.init(absoluteDate: event.startDate))
event.url = URL(string: "http://myurl.com/")
return event
}
private func presentEvent(_ event: EKEvent) {
DispatchQueue.main.async {
self.eventEditViewController = EKEventEditViewController()
self.eventEditViewController!.eventStore = self.eventStore
self.eventEditViewController!.event = event
self.eventEditViewController!.editViewDelegate = self
self.viewController?.present(self.eventEditViewController!, animated: true)
}
}
}
extension EventManager: EKEventEditViewDelegate {
func eventEditViewController(_ controller: EKEventEditViewController, didCompleteWith action: EKEventEditViewAction) {
eventEditViewController?.dismiss(animated: true, completion: {
self.delegate.finish(result: CalendarResult.fromAction(action))
})
}
}
EKEventEditViewController
Вот какEKEventEditViewController
представлено:
EKEventEditViewController is presented">
Еще одна вещь
Еще одна вещь, которую я заметил, это то, что когда я удаляю старт идата окончания моего EKEvent
объекта, кнопка «Добавить» включена по умолчанию.
Как я могу настроить мой EKEvent
объект таким образом, чтобы он имел собственную дату начала и окончания, и в то же времявремя включения кнопки Добавить по умолчанию EKEventEditViewController
?