2016-03-20 4 views
1

Beim Bearbeiten eines Ereignisses in einer Instanz von EKEventEditViewController und Auswählen eines anderen Kalenders ändert sich der Kalender des Ereignisses, aber die Änderungen an anderen Attributen wie dem Titel gehen verloren.EKEventEditViewController-Änderungen werden beim Ändern des Kalenders nicht gespeichert

Wenn ich keinen anderen Kalender auswähle, werden die Änderungen wie erwartet beibehalten.

Das ist mein Code, wenn der Editor

Laden bis
let editorVC = EKEventEditViewController() 
eventKitEditorViewController = editorVC // eventKitEditorViewController is a class variable 

editorVC.event = ekEvent // ekEvent is the supplied event to edit 
editorVC.modalPresentationStyle = .Popover 
editorVC.eventStore = OP1EventKitManager.sharedInstance.eventStore // the store is on a singleton object 
editorVC.editViewDelegate = self 

rootVC.presentViewController(editorVC, animated: true, completion: nil) 

/// DELEGATE METHOD 

    func eventEditViewController(controller: EKEventEditViewController, didCompleteWithAction action: EKEventEditViewAction) { 
     print(action) 
     controller.dismissViewControllerAnimated(true, completion: nil) 
    } 

Muss ich nichts extra tun, wenn die eventEditViewController didCompleteWithAction abgeschlossen ist?

+0

Ich hatte das gleiche Problem, und die Lösung war, die Tabelle neu zu laden, die meine Ereignisse anzeigte. Der EKEventEditViewController speichert die Änderungen, wenn der Benutzer auf die Schaltfläche "Fertig" klickt – jessi

Antwort

1

In Ihrem Rückruf speichern Sie das Ereignis nicht. Versuchen Sie, Ihr Ereignis im Rückruf zu speichern und sehen Sie, ob das das Problem behebt. etwas Ähnliches:

let event = controller.event! 

do { 
    try eventStore.saveEvent(event, span: .ThisEvent, commit: true) 
} catch { 
    print("Could not update the event store with supplied changes") 
} 
Verwandte Themen