Редактировать конкретное событие с помощью EventKit — Swift

Я хочу отредактировать одно событие, которое я извлек из календаря. Моя проблема в том, что я мог видеть детали события, но кнопка редактирования не отображается, поэтому пользователь не может ее редактировать.

вот о чем я говорю

Это соответствующая часть Кодекса

class ViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource, UIPickerViewDelegate, UIPickerViewDataSource, EKEventEditViewDelegate {

let eventStore = EKEventStore()
var hibakURL = [String]()
var hibasEventek = [EKEvent]()

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if segue.identifier == "segue" {
                // Configure the destination event view controller
                let eventViewController = segue.destination as! EKEventViewController
                // Fetch the index path associated with the selected event
                let indexPath = self.hibaTableView.indexPathForSelectedRow!
                // Set the view controller to display the selected event
                eventViewController.event = self.hibasEventek[indexPath.row]
                print(indexPath.row)

                // Allow event editing
                eventViewController.allowsEditing = true
            }
    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        let numofRows = hibakURL.count
        return numofRows
    }

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {
        let cell = hibaTableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        cell.textLabel?.text = hibasEventek[indexPath.row].title

        cell.textLabel?.font = UIFont(name: (cell.textLabel?.font.fontName)!, size:14)

        return cell
    }


        }

Надеюсь, этого достаточно!
Извините, если что-то в посте не так, но это мой первый пост на SO.


person Elliot Czigány    schedule 19.07.2017    source источник


Ответы (1)


Проблема решена, я попытался использовать eventIdentifier вместо сохраненного события, и это сработало.

    class ViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource, UIPickerViewDelegate, UIPickerViewDataSource, EKEventEditViewDelegate {

let eventStore = EKEventStore()
var hibakURL = [String]()
var hibasEventek = [String]() // <-- To Store eventIdentifier

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if segue.identifier == "segue" {
                // Configure the destination event view controller
                let eventViewController = segue.destination as! EKEventViewController
                // Fetch the index path associated with the selected event
                let indexPath = self.hibaTableView.indexPathForSelectedRow!
                // Set the view controller to display the selected event
                eventViewController.event = eventStore.event(withIdentifier: hibasEventek[indexPath.row])! //it fetches now that specific event from the eventStore instead of a copied event
                print(indexPath.row)

                // Allow event editing
                eventViewController.allowsEditing = true
            }
    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        let numofRows = hibakURL.count
        return numofRows
    }

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {
        let cell = hibaTableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        cell.textLabel?.text = hibasEventek[indexPath.row].title

        cell.textLabel?.font = UIFont(name: (cell.textLabel?.font.fontName)!, size:14)

        return cell
    }


        }

Спасибо за помощь! Хорошего дня

person Elliot Czigány    schedule 19.07.2017