Direkt
Direkt 是 DRYNavigationManager 的 Swift 版本。
与原始版本类似,它旨在为不依赖于 Storyboard Segues 的项目提供使用。它遵循相同的架构概念,但利用 Swift 编程技术提供更强的类型安全和原生 API 感觉。
用法
库定义了几个核心协议,用户将会与之交互
Navigator
- 负责导航流程的核心对象。它们的任务是运行过渡代码,例如将视图控制器推入导航堆栈。NavigationManager
- 这些对象的任务,如名称所示,是管理导航器。这意味着该对象需要根据导航请求创建给定的导航器实例。《BaseNavigationManager》是该协议的开源实现,您可以直接使用或扩展。- 其他一些辅助类型,如《ViewControllerFactory》和《NavigatorFactory》,作为依赖项解决方案的抽象。
以下是一个将视图控制器推入导航堆栈的《Navigator》实现示例
func navigate(using input: String, from hostViewController: UIViewController, factory: ViewControllerFactory) throws {
guard let navigationController = hostViewController.navigationController else {
throw Error.missingNavigationController
}
try navigationController.pushViewController(
factory.makeViewController(ofType: HelloViewController.self, input: input),
animated: true
)
}
示例
在仓库中,您可以找到示例项目。
- 克隆仓库 –
git clone https://github.com/appfoundry/direkt.git
- 在《Example》目录下运行
carthage build --platform iOS
- 探索示例项目
安装
CocoaPods
将以下行添加到您的 Podfile
中:pod "Direkt"
Carthage
将以下行添加到您的 Cartfile
中:github "appfoundry/direkt"
并相应更新您的 Carthage copy-frameworks
脚本。
作者
作者 | 电子邮件 |
---|---|
Joris Dubois | [email address hidden] |
Jonathan Esposito | [email address hidden] |
Jens Goeman | [email address hidden] |
Damian Malarczyk | [email address hidden] |
许可
Direkt 依据 MIT 许可协议提供。请参阅 LICENSE 文件了解详细信息。