iosswiftios13xcode11eventkit

EKEventViewController wont show Edit Button on iOS 13


i got a simple app where i want to present an event within an EKEventViewController.

    // the button action which validates if the event store access is granted and presents the given alert if true
    @IBAction func actionButtonShowPopover(_ sender: Any) {
        eventStore.requestAccess(to: .event) { (granted, _) in
            guard granted else { return }

            let event = self.generateAndSaveEvent()
            self.presentEventViewController(withEvent: event)
        }
    }
    // creates and tries to save an sample even and returns it
    private func generateAndSaveEvent() -> EKEvent {
        let event = EKEvent(eventStore: eventStore)

        event.title = "Event Title"
        event.startDate = Date()
        event.endDate = Date().addingTimeInterval(1800)
        event.calendar = eventStore.defaultCalendarForNewEvents

        do {
            try eventStore.save(event, span: .thisEvent)
        } catch(let error) {
            print(error)
        }

        return event
    }
    // displays an EKEventViewController with our newly created event within an popover
    private func presentEventViewController(withEvent event: EKEvent) {
        DispatchQueue.main.async {
            let eventVC = EKEventViewController()

            eventVC.event = event
            eventVC.allowsEditing = true

            eventVC.modalPresentationStyle = .popover
            eventVC.popoverPresentationController?.sourceView = self.buttonShowPopover
            eventVC.popoverPresentationController?.sourceRect = self.buttonShowPopover.frame.offsetBy(dx: 0, dy: -10)
            eventVC.popoverPresentationController?.backgroundColor = .white
            eventVC.popoverPresentationController?.permittedArrowDirections = .up

            self.present(eventVC, animated: false, completion: nil)
        }
    }

i created an event as shown in the code above and simply displaying it within the popover view controller. since ios 13 i got a different result:

iOS 12.4 with edit button

iOS 13 without edit button

is there any chance i'm missing changes from iOS12 -> iOS13? thanks upfront - i'm grateful for any advice!


Solution

  • Edit button has moved to navigation bar in iOS 13. You need to present it without popover style.