一个免费的 SwiftUI 库,使导航变得更容易、更清晰
导航变得简单
立即在您的项目中实施导航。保持代码干净
Navigattie 是一个免费的 SwiftUI 开源库,它使导航变得更容易、更清晰。
- 提高代码质量。使用该方法推动您的视图
push(with:)
。用 弹出所选的一个pop()
。前所未有的简单。 - 专为 SwiftUI 设计。在开发该库时,我们利用 SwiftUI 的强大功能为您提供强大的工具来加速您的实施过程。
入门
✋ 要求
平台 | 最低 Swift 版本 |
---|---|
iOS 15+ | 5.0 |
⏳ 安装
斯威夫特包管理器
Swift 包管理器是一个用于自动分发 Swift 代码的工具,并集成到 Swift 编译器中。
设置好 Swift 包后,将 Navigattie 添加为依赖项就像将其添加dependencies
到Package.swift
.
dependencies: [
.package(url: "https://github.com/Mijick/Navigattie", branch(“main”))
]
用法
1. 设置库
在结构内部@main
,调用implementNavigationView(config:)
将成为导航结构中根视图的视图上的方法。作为根的视图必须是类型NavigatableView
。该方法采用可选参数 – config
,可用于为应用程序中的所有导航视图配置一些修饰符。
var body: some Scene {
WindowGroup {
ContentView()
.implementNavigationView(config: nil)
}
}
2. 声明要推送的视图的结构
Navigattie 提供了使用其内置堆栈推送(或弹出)任何视图的功能。为此,需要确认NavigatableView
协议。因此,您想要推送的示例视图将具有以下声明:
struct ExampleView: NavigatableView {
...
}
3. 实现body
方法
用内容填充您的视图
struct ExampleView: NavigatableView {
var body: some View {
VStack(spacing: 0) {
Text("Witaj okrutny świecie")
Spacer()
Button(action: pop) { Text("Pop") }
}
}
...
}
4. 实现configure(view: NavigationConfig) -> NavigationConfig
方法
此步骤是可选的 - 如果您愿意,可以跳过此步骤并将配置保留为默认值。 每个视图都有自己的一组方法,可用于自定义它,无论我们在步骤 1中提到的配置如何。
struct ExampleView: NavigatableView {
func configure(view: NavigationConfig) -> NavigationConfig { view.backgroundColour(.red) }
var body: some View {
VStack(spacing: 0) {
Text("Witaj okrutny świecie")
Spacer()
Button(action: pop) { Text("Pop") }
}
}
...
}
5. 从任何你想要的地方展示你的观点!
只需ExampleView().push(with:)
从选定的地点拨打电话即可
struct SettingsViewModel {
...
func openSettings() {
...
ExampleView().push(with: .verticalSlide)
...
}
...
}
6. 结案意见
有两种方法可以做到这一点:
- 通过在任何视图内调用
pop
,pop(to type:)
,方法之一popToRoot
struct ExampleView: NavigatableView {
...
func createButton() -> some View {
Button(action: popToRoot) { Text("Tap to return to root") }
}
...
}
- 通过调用 NavigationManager 的静态方法之一:
NavigationManager.pop()
NavigationManager.pop(to type:)
其中 type 是您要返回的视图类型NavigationManager.popToRoot()
尝试我们的演示
通过克隆我们创建的项目来亲自看看它是如何工作的
执照
Navigattie 是在 MIT 许可下发布的。有关详细信息,请参阅许可证。
我们的其他开源 SwiftUI 库
PopupView – 最强大的弹出库,允许您呈现任何弹出窗口