У меня есть один ViewController
с 3 subviews
:
- имя пользователя (TextField)
- пароль (TextField)
- логин (кнопка)
Ожидается:
Кнопка входа должна быть включена, если символы поля 'username' dan 'password' больше 0.
Actual:
Наблюдаемые объекты изменены, кнопка по-прежнему отключена.
Код:
import UIKit
import RxSwif
import RxCocoa
struct LoginViewModel {
let username = Variable<String>("")
let password = Variable<String>("")
var isValid : Observable<Bool>{
return Observable.combineLatest(username.asObservable(), password.asObservable(),
resultSelector:{ (un,pw) -> Bool in
return un.count > 0 && pw.count > 0
}
)
}
}
class LoginViewController: UIViewController {
@IBOutlet weak var tUsername : UITextField!
@IBOutlet weak var tPassword : UITextField!
@IBOutlet weak var bLogin : UIButton!
var viewModel = LoginViewModel()
var disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
self.viewModel.username.asObservable().map({$0 }).bind(to: self.tUsername!.rx.text).disposed(by: disposeBag)
self.viewModel.password.asObservable().map({$0 }).bind(to: self.tPassword!.rx.text).disposed(by: disposeBag)
self.viewModel.isValid.map({$0}).bind(to: self.bLogin!.rx.isEnabled).disposed(by: disposeBag)
}
}