Skip to content

Instantly share code, notes, and snippets.

@wanewang
Created December 28, 2016 15:35
Show Gist options
  • Save wanewang/4bb2b5eb4ed2475ab715f232ba881cdc to your computer and use it in GitHub Desktop.
Save wanewang/4bb2b5eb4ed2475ab715f232ba881cdc to your computer and use it in GitHub Desktop.
RxUIViewController
extension Reactive where Base: UIViewController {
var viewDidLoad: Observable<Void> {
return self.sentMessage(#selector(Base.viewDidLoad)).map { _ in Void() }
}
var viewWillAppear: Observable<Bool> {
return self.sentMessage(#selector(Base.viewWillAppear)).map { $0.first as? Bool ?? false }
}
var viewDidAppear: Observable<Bool> {
return self.sentMessage(#selector(Base.viewDidAppear)).map { $0.first as? Bool ?? false }
}
var viewWillDisappear: Observable<Bool> {
return self.sentMessage(#selector(Base.viewWillDisappear)).map { $0.first as? Bool ?? false }
}
var rx_viewDidDisappear: Observable<Bool> {
return self.sentMessage(#selector(Base.viewDidDisappear)).map { $0.first as? Bool ?? false }
}
var viewWillLayoutSubviews: Observable<Void> {
return self.sentMessage(#selector(Base.viewWillLayoutSubviews)).map { _ in Void() }
}
var viewDidLayoutSubviews: Observable<Void> {
return self.sentMessage(#selector(Base.viewDidLayoutSubviews)).map { _ in Void() }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment