В 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)
}
У меня уже есть строка someString, привязанная к текстовому полю в ViewController.
Всякий раз, когда изменяется какая-то строка (или, возможно, текстовое поле, если это лучше), я хочу, чтобы кнопка была включена в зависимости от того, действительна ли какая-то строка.
Я попытался использовать «Observable‹ Bool>», но начал идти по другому пути. Я мог бы сделать это в ViewController:
someViewModel.someString.subscribeNext { text -> Void in
// could just someUIButton.enabled = someViewModel.isValidSomeString(text)
}.addDisposableTo(disposeBag)
Нет ли другого способа, менее подробного, чем подход isValidSomeString(text)? Мы уже добились хорошего успеха с isValidLogin, который возвращает Observable‹ Bool >, который использует combLatest.