Skip to content

Instantly share code, notes, and snippets.

@brocoo
Last active December 1, 2016 18:06
Show Gist options
  • Save brocoo/ce2d614e5eb5710ca8b8b8f9780dbeee to your computer and use it in GitHub Desktop.
Save brocoo/ce2d614e5eb5710ca8b8b8f9780dbeee to your computer and use it in GitHub Desktop.
Reactive extension on UIViewController, adding observables for the basic UIViewController life cycle functions
import RxSwift
import RxCocoa
extension Reactive where Base: UIViewController {
public var viewDidLoad: Observable<Void> {
return self.sentMessage(#selector(UIViewController.viewDidLoad)).map({ _ in return () })
}
public var viewWillAppear: Observable<Bool> {
return self.sentMessage(#selector(UIViewController.viewWillAppear(_:))).map({ $0.first as! Bool })
}
public var viewDidAppear: Observable<Bool> {
return self.sentMessage(#selector(UIViewController.viewDidAppear(_:))).map({ $0.first as! Bool })
}
public var viewWillDisappear: Observable<Bool> {
return self.sentMessage(#selector(UIViewController.viewWillDisappear(_:))).map({ $0.first as! Bool })
}
public var viewDidDisappear: Observable<Bool> {
return self.sentMessage(#selector(UIViewController.viewDidDisappear(_:))).map({ $0.first as! Bool })
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment