2016-03-22 4 views
1

Ich arbeite in einem Projekt mit Reactive Cocoa 4.0 und MVVM (swift 2.0). In Ansicht Modell habe ich Zeichenfolge, die entsprechend den Textfeldänderungen aktualisiert wird, aber ich muss Aktualisieren Sie dieses Textfeld, wenn sich die Zeichenkette ändert. Ist es möglich, eine Zwei-Wege-Bindung zwischen Textfeld und Zeichenkette (ageString) herzustellen.Wie erreiche ich eine Zwei-Wege-Bindung mit ReactiveCocoa 4.0 und MVVM

txtAge.rac_textSignal() ~> RAC(objViewModel, "ageString") 

Antwort

0

Bevor RAC 2.x Sie RACChannel s nutzen könnten, die diese Funktionalität angeboten (können Sie an jedem Kanalanschluss abonnieren und benachrichtigt werden, wenn neue Werte ankommen). Kanäle und Terminals wurden nicht nach RAC 2.x portiert, daher gibt es heute keine Zwei-Wege-Bindung in RAC, aber es sollte keine große Sache sein, da Sie immer eine andere finden können (imho besser) Ansatz.

Für weitere Informationen können Sie viele Threads zu diesem Thema im Rahmen Fragen auf Github, wie:

4

Sie können versuchen, Code unten:

viewModel.ageString.producer 
     .skipRepeats { [weak self] in 
       $1 == self?.txtAge.text 
     }.startWithNext { [weak self] in 
       self?.txtAge.text = $0 
} 

viewModel.ageString <~ txtAge.rac_textSignal() 
     .toSignalProducer() 
     .map { ($0 as? String) ?? "" } 
     .flatMapError { _ in SignalProducer<String, NoError>.empty } 
+0

Es funktioniert, aber ist es Ursache für jede Schleife? –

Verwandte Themen