Я пытаюсь объединить входные данные всего текстового поля и проверить, есть ли у него входные данные, но при наблюдении объединить последние подписались только один раз.
Есть ли другой способ проверить текстовые поля, если они пустые, с помощью rxswift?те текстовые поля OTP
let otp1Value: Observable<Bool> = self.otp1.rx.controlEvent(UIControlEvents.editingDidEnd)
.withLatestFrom(self.otp1.rx.text)
.map{ !$0!.isEmpty }
.share()
let otp2Value: Observable<Bool> = self.otp1.rx.controlEvent(UIControlEvents.editingDidEnd)
.withLatestFrom(self.otp2.rx.text)
.map{ !$0!.isEmpty }
.share()
let otp3Value: Observable<Bool> = self.otp1.rx.controlEvent(UIControlEvents.editingDidEnd)
.withLatestFrom(self.otp3.rx.text)
.map{ !$0!.isEmpty }
.share()
let otp4Value: Observable<Bool> = self.otp1.rx.controlEvent(UIControlEvents.editingDidEnd)
.withLatestFrom(self.otp4.rx.text)
.map{ !$0!.isEmpty }
.share()
let otp5Value: Observable<Bool> = self.otp1.rx.controlEvent(UIControlEvents.editingDidEnd)
.withLatestFrom(self.otp5.rx.text)
.map{ !$0!.isEmpty }
.share()
let otp6Value: Observable<Bool> = self.otp1.rx.controlEvent(UIControlEvents.editingDidEnd)
.withLatestFrom(self.otp6.rx.text)
.map{ !$0!.isEmpty }
.share()
Observable.combineLatest(
otp1Value.asObservable(),
otp2Value.asObservable(),
otp3Value.asObservable(),
otp4Value.asObservable(),
otp5Value.asObservable(),
otp6Value.asObservable())
.asObservable().subscribe(onNext: { [weak self] (arg: (Bool, Bool, Bool, Bool, Bool, Bool)) -> Void in
guard let self = self else { return }
print("args \(arg)")
switch arg {
case (true, true, true, true, true, true):
self.step2CellViewModel.otpIsValid.onNext(true)
print("args \(arg)")
default:
self.step2CellViewModel.otpIsValid.onNext(false)
print("args false")
}
})
.disposed(by: self.disposeBag)