SegueKit 3.0.0

SegueKit 3.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2017年5月
SwiftSwift 版本3.0
SPM支持 SPM

langyanduanlangyanduan 维护。



SegueKit 3.0.0

SegueKit

使用闭包执行故事板转换。

为什么使用这个?

如果你想要将一些参数传递给通过故事板中的转换创建的目标视图控制器,通常应该重写 prepareForSegue:sender:。但如果与 SegueKit 一起工作,你可以在闭包中完成此操作。

使用方法

如果你在故事板中创建了一个名为“A”的转换,你可以像这样执行转换:

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()
        }
    }
}

扩展使用方式

  • 结合 R.swift 使用
  • 结合 Rx 使用
  • 结合 Rx + R.swift 使用

使用扩展执行转换

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)
    }
}

Rx 绑定

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)
    }

}

Rx 订阅

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)
    }
}

示例

要运行示例项目,首先克隆存储库,然后在 Example 目录中首次运行 pod install

安装

许可证

SegueKit 由 langyanduan 创建并许可为 MIT 许可证。