RxSwift/RxCocoa 2.0.0- beta 3 では、次の ViewModel を使用しています。
let someString = Variable("")
func isValidSomeString() -> Observable<Bool> {
if someString.value.characters.count == 0 {
return just(false)
}
return just(true)
}
ViewController のテキスト フィールドに someString を既にバインドしています。
someString (より適切な方法であればテキスト フィールド) が変更されるたびに、someString が有効かどうかに基づいてボタンを有効にする必要があります。
「Observable< Bool >」を使用してみましたが、別の道をたどり始めました。ViewController でこれを行うことができます。
someViewModel.someString.subscribeNext { text -> Void in
// could just someUIButton.enabled = someViewModel.isValidSomeString(text)
}.addDisposableTo(disposeBag)
isValidSomeString(text) アプローチよりも冗長でない別の方法はありませんか? 既に、combineLatest を使用した Observable< Bool > を返す isValidLogin で素晴らしい成功を収めています。