TruMan1
TruMan1

Reputation: 36078

How to bind UISwitch to UIButton enable in RxSwift?

I have a UISwitch that needs to be selected in order to continue onto the next form screen. So I would like to bind the UISwitch selected to the UIButton enabled. I just can't get this sample going.

Here's what I'm trying but doesn't compile:

let termsValidation = termsSwitch
    .rx_selected
    .shareReplay(1)

termsValidation
    .bindTo(signupButton.rx_enabled)
    .addDisposableTo(disposeBag)

What's the correct way to get this to work in RxSwift and RxCocoa?

Upvotes: 5

Views: 4697

Answers (2)

Kashif Jilani
Kashif Jilani

Reputation: 1257

    let termsValidation = termsSwitch
            .rx.value
            .shareReplay(1)

    termsValidation
        .bind(to: signupButton.rx.isEnabled)
        .addDisposableTo(disposeBag)

Upvotes: 5

mrahmiao
mrahmiao

Reputation: 1311

You should use rx_value rather than rx_selected.

Upvotes: 7

Related Questions