Nivelir
Nivelir 是一个为 iOS 和 tvOS 应用程序提供导航的 DSL,具有简单、链式和编译时安全的语法。
内容
需求
- iOS 12.0+ / tvOS 12.0+
- Xcode 13.0+
- Swift 5.5+
安装
CocoaPods
CocoaPods 是一款 Cocoa 项目的依赖管理器。可以通过以下命令安装它
$ gem install cocoapods
要使用 CocoaPods 将 Nivelir 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
platform :ios, '12.0'
use_frameworks!
target '<Your Target Name>' do
pod 'Nivelir', '~> 1.5.1'
end
最后,运行以下命令
$ pod install
Carthage
Carthage是一款去中心化的依赖管理器,它构建您的依赖并提供二进制框架。您可以使用以下命令通过Homebrew安装Carthage:
$ brew update
$ brew install carthage
要使用Carthage将Nivelir集成到您的Xcode项目中,请在您的Cartfile
中指定它。
github "hhru/Nivelir" ~> 1.5.1
最后运行carthage update
构建框架,并将生成的Nivelir.framework
拖动到您的Xcode项目中。
Swift Package Manager
Swift Package Manager是一种管理Swift代码分发的工具。它与Swift构建系统集成,以自动化下载、编译和链接依赖的过程。
要使用Swift Package Manager将Nivelir集成到您的Xcode项目中,将以下内容添加到您的Package.swift
文件中作为依赖。
.package(url: "https://github.com/hhru/Nivelir.git", from: "1.5.1")
然后指定“Nivelir”作为您希望使用Nivelir的目标的依赖项。
以下是示例Package.swift
文件的内容:
// swift-tools-version:5.5
import PackageDescription
let package = Package(
name: "MyPackage",
products: [
.library(name: "MyPackage", targets: ["MyPackage"])
],
dependencies: [
.package(url: "https://github.com/hhru/Nivelir.git", from: "1.5.1")
],
targets: [
.target(name: "MyPackage", dependencies: ["Nivelir"])
]
)
Usage
快速入门
让我们实现一个简单的视图控制器,可以设置背景颜色。
class SomeViewController: UIViewController {
let color: UIColor
init(color: UIColor) {
self.color = color
super.init(nibName: nil, bundle: nil)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = color
}
}
然后,我们需要实现一个构建器来创建我们的控制器。
struct SomeScreen: Screen {
let color: UIColor
func build(navigator: ScreenNavigator) -> UIViewController {
SomeViewController(color: color)
}
}
现在我们可以使用这个屏幕进行导航。
let navigator = ScreenNavigator()
navigator.navigate { route in
route
.top(.stack)
.popToRoot()
.push(SomeScreen(color: .red))
.push(SomeScreen(color: .green)) { route in
route.present(SomeScreen(color: .blue))
}
}
该导航执行以下步骤:
- 搜索堆栈中的顶层容器(
UINavigationController
) - 将其堆栈重置为第一个屏幕
- 在堆栈中添加一个红色屏幕
- 在堆栈中添加一个绿色屏幕
- 将蓝色屏幕在绿色屏幕上模态显示
速查表
了解Nivelir最常用的使用案例。请参考API文档中的文章。
示例应用
示例应用
是一个简单的iOS和tvOS应用,演示了Nivelir在实际中的应用方式。这也是开始使用这个框架的好地方。要安装它,请在终端中运行以下命令
$ git clone https://github.com/hhru/Nivelir.git
$ cd Nivelir/Example
$ pod install
$ open NivelirExample.xcworkspace
文章和视频
文章
视频
通讯
- 如果您需要帮助,请打开一个问题。
- 如果您发现了一个错误,请打开一个问题。
- 如果您有功能请求,请打开一个问题。
- 如果您想做出贡献,请提交一个拉取请求。
许可证
Nivelir可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。