RxSwiftのbindメソッドを利用した実装
今回は簡単なRxSwiftの実装を行います。
初歩中の初歩ですがbindメソッドを利用して、TextFildで入力した文字をリアルタイムで表示させる実装を行います。
実装コード
使用したのは
Label ✕ 1
TextFild ✕ 1
文字を入力したら、その入力した文字データが反映されるシンプルなコードです。
import UIKit
import RxSwift
import RxCocoa
final class ViewController: UIViewController {
@IBOutlet private weak var nameTextFild: UITextField!
@IBOutlet private weak var nameLabel: UILabel!
private let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
bind()
}
}
extension ViewController {
func bind() {
nameTextFild.rx.text
.bind(to: nameLabel.rx.text)
.disposed(by: disposeBag)
}
}
bindは双方向のデータバインディングを想像するが、RxSwiftの場合は単方向のデータバインディングです。
振る舞いはsubscribeとほぼ同様で値をセットすることと同じです。
// 上の実装のbind部分はこれでも対応可能です。
nameTextFild.rx.text
.subscribe(onNext: { [weak self] text in
self?.nameLabel.text = text
})
.disposed(by: disposeBag)
しかしbindにすると少しスッキリ実装できシンプルでいいと感じました。
まとめ
RxSwiftは難しいです。少しずつRxSwiftの知識を増やして行きます。