WillowTreeSegueHandler 0.0.1

WillowTreeSegueHandler 0.0.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2016年2月
SPM支持 SPM

Ian Terrell 维护。



  • 作者
  • Ian Terrell

WillowTreeseguehandler

Swift 中更好的 Segue 处理

安装

Gemfile

gem "segue_handler_plugin"

Podfile

plugin 'segue_handler_plugin'
pod 'WillowTreeSegueHandler'

构建阶段 在 "编译源代码" 前添加运行脚本阶段,具体如下

bundle exec pod --no-ansi --silent generate-segue-handlers $PROJECT_DIR $PROJECT_NAME

构建一次,然后添加 SegueExtensions.swift 文件到您的项目中,并重新构建。

使用方法

带标识符的 Segues 将被提取到视图控制器扩展中的嵌套枚举中,并写入 SegueExtensions.swift

以下为生成示例代码,假设 AB 是通过标识符为 "ToB" 的 Segue 从 A 连接到 B 的视图控制器。

extension A: SegueHandler {
    enum SegueIdentifier: String {
        case ToB
    }

    enum ToSegueDestination: SegueDestination {
        case ToB(B)

        init?(identifier: SegueIdentifier, destination: UIViewController) {
            switch identifier {
            case .ToB:
                guard let vc = destination as? B else { return nil }
                self = ToB(vc)
            }
        }
    }
}

这些可以在您的视图控制器中这样使用

func pushManually() {
    performSegue(.ToB, sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    switch segueFromStoryboardSegue(segue) {
    case .ToB(let b):
        b.prepare(dependency: "injected from a")
    }
}

查看所附带的 Example 应用程序以获取工作演示。

WillowTree 正在招聘!

想编写精彩的 tvOS 应用程序?想编写精彩的 iOS 应用程序? 查看我们的职位空缺!