@IBOutlet weak private var button: UIButton!
private let disposeBag = DisposeBag()
button.rx.tap
.subscribe(onNext: { _ in
print("Button Tapped !")
})
.disposed(by: disposeBag)
- extension Reactive where Base: CustomView
class ViewController: UIViewController {
@IBOutlet weak var customView: CustomView!
private let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
customView.rx.buttonTap
.emit(onNext: { _ in
print("CustomView button Tapped!")
})
.disposed(by: disposeBag)
}
}
final class CustomView: UIView, NibOwnerLoadable {
@IBOutlet weak fileprivate var button: UIButton!
override func awakeFromNib() {
super.awakeFromNib()
loadNibContent()
}
}
extension Reactive where Base: CustomView {
var buttonTap: Signal<Void> {
return base.button.rx.tap.asSignal()
}
}
@IBOutlet weak private var textField: UITextField!
private let disposeBag = DisposeBag()
textField.rx.text.orEmpty
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)