FRMSKI開発ブログ

AWS、iOS、AR/VRなど開発メモ

RxSwiftのbindでテキストフィールドと変数の値を直結させる

RxSwiftのbindを使えばテキストフィールドの値を変更したタイミングで変数を書き換える処理を簡単に実装することができます。

//TestViewController.swift側

@IBOutlet var testTextField : UITextField!
let model = TestModel()
let disposeBag = DisposeBag()

func viewDidLoad{

 testTextField.rx.text.orEmpty
            .bind(to: model.testText)
            .disposed(by: disposeBag)
}

上記ソースではRxSwiftとRxCocoaのimportも記述してください。orEmptyを入れることで空文字とnilはオブザーブしません。disposeBagは自動的に解放するために格納しておきます。

//TestModel.swift側
let testText = Variable<String>("")

このようにModel側で変数を定義してViewControllerでbindします。