TestsTested | ✗ |
LangLanguage | SwiftSwift |
License | MIT |
ReleasedLast Release | May 2017 |
SwiftSwift Version | 3.0 |
SPMSupports SPM | ✗ |
Maintained by langyanduan, langyanduan.
Perform storyboard segues with closures.
If you want to pass some parameters to destination view controller which created by segue in storyboard, usual should override prepareForSegue:sender:
. But if work with SegueKit
, you can do it in closure.
If you create a segue in storyboard named “A”, you can perfrom the segue like this:
import SegueKit
class ViewController: UIViewController {
let disposeBag = DisposeBag()
// basic
@IBAction func onBtnA(sender: AnyObject) {
performSegue(with: "A") { (segue) in
segue.destinationViewController.view.backgroundColor = UIColor.yellowColor()
}
}
}
import SegueKit
class ViewController: UIViewController {
let disposeBag = DisposeBag()
// with R.swift
@IBAction func onBtnB(sender: AnyObject) {
performSegue(with: R.segue.viewController.b) { (segue) in
segue.destinationViewController.view.backgroundColor = UIColor.greenColor()
}
}
// with Rx
@IBAction func onBtnC(sender: AnyObject) {
rx_performSegue("C")
.subscribeNext { (segue) in
segue.destinationViewController.view.backgroundColor = UIColor.redColor()
}
.addDisposableTo(disposeBag)
}
// with Rx + R.swift
@IBAction func onBtnD(sender: AnyObject) {
rx_performSegue(R.segue.viewController.d)
.subscribeNext { (segue) in
segue.destinationViewController.view.backgroundColor = UIColor.blueColor()
}
.addDisposableTo(disposeBag)
}
}
class A: UIViewController {
let disposeBag = DisposeBag()
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// with Rx
button.rx_tap.bindTo(rx_segue("A")) { (segue, _) in
segue.destinationViewController.view.backgroundColor = UIColor.blackColor()
}.addDisposableTo(disposeBag)
}
}
class B: UIViewController {
let disposeBag = DisposeBag()
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// with Rx + R.swift
button.rx_tap.bindTo(rx_segue(R.segue.b.b)) { (segue, _) in
segue.destinationViewController.view.backgroundColor = UIColor.brownColor()
}.addDisposableTo(disposeBag)
}
}
import SegueKit
class C: UIViewController {
let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
// with Rx
rx_segue("C").subscribeNext { (segue, sender) in
segue.destinationViewController.view.backgroundColor = UIColor.purpleColor()
}.addDisposableTo(disposeBag)
}
}
class D: UIViewController {
let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
// with Rx + R.swift
rx_segue(R.segue.d.d).subscribeNext { (segue, sender) in
segue.destinationViewController.view.backgroundColor = UIColor.orangeColor()
}.addDisposableTo(disposeBag)
}
}
To run the example project, clone the repo, and run pod install
from the Example directory first.
SegueKit are created by langyanduan and released under a MIT License.