2017-04-10 125 views
1

我用official two-way-binding solutionRxSwift:雙向綁定

func <-> <T>(property: ControlProperty<T>, variable: Variable<T>) -> Disposable{ 
let bindToUIDisposable = variable.asObservable() 
    .bindTo(property) 

let bindToVariable = property 
    .subscribe(onNext: { n in 
     variable.value = n 
    }, onCompleted: { 
     bindToUIDisposable.dispose() 
    }) 

return Disposables.create(bindToUIDisposable, bindToVariable) 
} 

用法:(textField.rx.text <-> object.property).addDisposableTo(disposeBag)

屬性定義:var property = Variable<String?>(nil)

  1. 在onNext方法都可以和variable改變了它的價值,但我object.property沒有按沒有改變。
  2. 有沒有什麼辦法可以將當前值設置爲ControlProperty裏面的< - >方法,bcs我需要設置初始值,在訂閱開始之前?

回答

1

我的錯。我綁定後用另一個實例替換了對象

此代碼運行良好,控制屬性接收變量的初始值