2017-06-07 2 views
0

Ich versuche ein Eureka-Formular zum Bearbeiten/Erstellen eines Aufgabenobjekts zu erstellen. Jetzt segne ich in die Ansicht und übergebe ein Task-Objekt als Klassenvariable, aber aus irgendeinem Grund ist es nicht zugänglich von viewDidLoad, wo ich das Formular erstelle. Das bedeutet, dass ich dem Formular keine Werte zuweisen kann. Wenn ich eine didset Methode für die Task-Klasse-Variable erstellen, wird es schließlich aufgerufen, aber dann das Formularobjekt ist ein leeres Objekt, als wenn ich form.values ​​() es gibt nichts. Aber in viewDidLoad funktioniert es. Irgendwelche Vorschläge was vermisse ich?Zugriff auf Eureka-Formularobjekt von außen nicht möglich viewDidLoad

var task: Task? { didSet { print("didSet values:", form.values(), "didSet task name", task?.name) } } 

override func viewDidLoad() { 
    super.viewDidLoad() 

    form +++ Section() 
     <<< TextRow("name"){ 
      $0.title = "Name" 
     } 

    print("viewDidLoad values:", form.values(), "viewDidLoad task name", task?.name) 
} 

und Ausgang

viewDidLoad values: ["name": nil, "deadline": Optional(2017-06-08 19:02:39 +0000)] viewDidLoad task name nil 
didSet values: [:] didSet task name Optional("ascasc") 

Antwort

0

Nun, nach dem Debuggen Ich fand, dass es zwei verschiedene Instanzen der Eureka Form Ansicht waren. Nach dem Graben fand ich heraus, dass ich zwei Übergänge machte, die dasselbe taten. Ein Übergang von der Storyboard-Tabelle View-Zelle zum Formular und andere aus dem Code von didSelectRowAt und performSegue. Interessant, dass ich das nicht fand, als ich die vorbereitete (für segue :) von der Steuerung, die die Formularansicht anrief, sollte es die Ausgabe zweimal gedruckt haben, aber ich sah nur eine, also dachte ich immer, dass ich war Erstellen nur eines Segments.

Verwandte Themen