Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import RxSwift
- struct LoginViewModel {
- var username = Variable<String>("")
- var password = Variable<String>("")
- var isValid : Observable<Bool>{
- return Observable.combineLatest(self.username.asObservable(), self.password.asObservable())
- { (username, password) in
- return username.characters.count > 0
- && password.characters.count > 0
- }
- }
- }
- import RxSwift
- import RxCocoa
- import UIKit
- class LoginViewController: UIViewController {
- var usernameTextField: UITextField!
- var passwordTextField: UITextField!
- var confirmButton: UIButton!
- var viewModel = LoginViewModel()
- var disposeBag = DisposeBag()
- override func viewDidLoad() {
- usernameTextField.rx.text.bindTo(viewModel.username).addTo(disposeBag)
- passwordTextField.rx.text.bindTo(viewModel.password).addTo(disposeBag)
- //from the viewModel
- viewModel.rx.isValid.map { $0 }
- .bindTo(confirmButton.rx.isEnabled)
- }
- }
- let _ = viewModel.username.asObservable()
- .map { $0 }
- .bind(to: usernameTextField.rx.text)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement