NavigationView - 简化SwiftUI导航的开源库
项目名称:NavigationView
项目简介
NavigationView是一个强大的开源库,专为SwiftUI设计,用于简化iOS应用中的导航过程。它提供了完整的动画支持、手势操作、记住当前滚动视图偏移、提高代码质量等功能,并且特别强调稳定性和性能。
功能特点
自定义动画:支持任何自定义动画。
手势支持:可以为选定的屏幕轻松启用导航手势。
记住滚动视图偏移:库自动保存当前滚动视图偏移。
提高代码质量:只需一行代码即可在屏幕间导航。
稳定性:强调可靠性和性能,解决开发者在使用原生NavigationView时遇到的问题。
安装指南
NavigationView支持iOS 15+和Swift 5.0+,可以通过Swift Package Manager或Cocoapods安装。
Swift Package Manager
在Package.swift
中添加以下依赖:
Cocoapods
在Podfile
中添加以下依赖:
使用方法
1. 设置库
在你的 @main
结构中,使用 implementNavigationView
方法并传入作为导航栈根视图的视图。该视图必须是 NavigatableView
类型。该方法接受一个可选参数 - config
,可用于配置将放置在导航栈中的所有视图的某些属性。
2. 声明一个视图以推送到导航栈
NavigationView by Mijick 提供了将任何遵循 NavigatableView
协议的视图推送到导航栈的能力。
3. 实现 body
用内容填充你的视图
4. 实现 configure(view: NavigationConfig) -> NavigationConfig
方法
这一步是可选的 - 如果你愿意,你可以跳过这一步并保留默认配置。
每个视图都有自己的一组方法,可以用来为栈中的每个视图创建独特的外观。
5. 在代码的任何位置展示你的视图!
只需从选定的位置调用 ExampleView().push(with:)
。就这么简单!
6. 关闭你的视图 - 这更简单!
有两种方法可以做到这一点:
通过在任何视图中调用
pop
、pop(to type:)
、popToRoot
方法通过调用静态
NavigationManager
方法:NavigationManager.pop()
NavigationManager.pop(to type:)
其中 type 是你想返回的视图类型NavigationManager.popToRoot()
7. 等等,还有更多!
我们差不多完成了,但我们想介绍三个你可能喜欢的附加方法:
使用
setAsNewRoot
方法,你可以更改你的导航栈的根:可以传递
EnvironmentObject
,但记得在将视图推送到栈之前这样做:使用
onFocus
而不是onAppear
如果你想在视图每次可见时(位于栈顶)收到通知,请使用onFocus
方法:
扩展
NavigationView作为一个开源项目,开发者可以在此基础上增加更多功能,比如支持更多的导航动画、集成更多的第三方库或者增加对新iOS版本的支持。此外,项目也可以作为学习SwiftUI导航模式和路由管理的实例,对于希望深入了解这些技术的开发人员来说,是一个很好的学习资源。
或许喜欢
ActivityIndicatorView:SwiftUI 创建的预设加载指示器库
ActivityIndicatorView 是一个 SwiftUI 库,提供多种预设的加载动画指示器,支持自定义样式和动画,适用于 iOS、watchOS、tvOS 和 macOS 平台。
最近更新 2024-12-11
LightDarkMode-ToggleStyle:SwiftUI自定义开关样式与动画
LightDarkMode-ToggleStyle是一个SwiftUI开源项目,提供自定义开关样式和流畅动画效果,适用于iOS应用的UI设计和交互优化。
最近更新 2025-01-07
RichTextKit:Swift和SwiftUI中编辑富文本的SDK
RichTextKit是一个Swift SDK,支持在Swift和SwiftUI中编辑富文本,具备文本样式、字体、颜色等多种功能,并提供跨平台的RichTextEditor。
最近更新 2024-12-09