Наблюдаемый <Bool>Если еще в RxSwift - PullRequest
0 голосов
/ 04 сентября 2018

Я сделал Observable типа Bool, как показано ниже

let allValid: Observable<Bool>

//All valid is combination of two more Observable<Bool>
allValid = Observable.combineLatest(checkBoxValid, reasonValid) { $0 && $1 }

Теперь я хочу проверить, когда нажата кнопка «Готово», вызвать соответствующий метод на основе значения AllValid.

public func doneButtonPressed() {
//Here I have two methods, and to be called, when AllValid is true and false

//self.method1()
//self.method2()
}

Теперь, как это сделать. Я не могу связать напрямую, так как это сработает, и я хочу сработать, когда нажата Готово.

1 Ответ

0 голосов
/ 04 сентября 2018

Rx способ сделать это будет поместить это в ваш viewDidLoad

let isValid = doneButton.rx.tap.withLatestFrom(allValid)

isValid
    .filter { $0 }
    .subscribe(onNext: { _ in 
        // The button was tapped while the last value from allValid was true.
    }
    .disposed(by: bag)

isValid
    .filter { !$0 }
    .subscribe(onNext: { _ in 
        // The button was tapped while the last value from allValid was false.
    }
    .disposed(by: bag)
...