RxSwiftのメモ


ViewModelからUISearchBarへ値をセット

これでセットすると、UISearchBarからの変更通知がこない?

import RxCocoa

class ViewModel {
    let textOutput: PublishRelay<String?> = PublishRelay<String?>()
}
import UIKit
import RxSwift
import RxCocoa

class ViewController : UIViewController {

    private let vm: ViewModel = ViewModel()

    private let disposeBag: DisposeBag = DisposeBag()

    @IBOutlet private weak var searchBar: UISearchBar! {
        didSet {
            self.vm.textOutput
                .bind(to: self.searchBar.rx.text)
                .disposed(by: self.disposeBag)
        }
    }

}

メソッドの実行を検知する

継承してオーバーライドしなくとも下記のようにしてメソッドの実行を検知できる

let view = UIView()
view.rx.methodInvoked(#selector(UIView.layoutSubviews))
    .subscribe(onNext: { _ in
        // 処理
     })