用途:为 SwiftUI 应用实现导航模式,目标平台 iOS 26+(Swift 6.3),多数模式可向后兼容至 iOS 17。
主要能力:
- NavigationStack 推入式导航:用 Hashable 枚举定义 Route,配合 @State 路径绑定与 .navigationDestination(for:) 做编译期校验;仅在需异构路由时用 NavigationPath。支持 path.append、path.removeLast、path = [] 等程序化跳转,并可引入 router 统一管理路径与 sheet 状态。
- NavigationSplitView 多列布局:用于 iPad 和 Mac 的侧栏-详情结构,在 iPhone 上回退为栈导航;也可用 HStack 配合 horizontalSizeClass 手工分列。
- Sheet 呈现:状态表示选中模型时优先用 .sheet(item:),sheet 内部自行 dismiss。iOS 18+ 可用 .presentationSizing(.form/.page/.fitted/.automatic) 控制尺寸,.interactiveDismissDisabled 防止误关,macOS 15+ 可用 .dismissalConfirmationDialog。
- Tab 导航:使用 Tab(value:) 配合 TabView(selection:) 与选择绑定,每个 Tab 内包裹独立 NavigationStack;iOS 26 新增搜索 Tab、.tabViewSearchActivation、.tabBarMinimizeBehavior(仅 iPhone)及侧栏相关 API。
- 深链:遵循解析→校验→提交流程,用 .onOpenURL 集中处理;通用链接需 AASA 文件与 Associated Domains 权限;自定义 scheme 在 Info.plist 的 CFBundleURLTypes 注册;Handoff 用 .userActivity() 与 .onContinueUserActivity()。
常见限制与错误:避免已弃用的 NavigationView;各 Tab 需独立路径;不要存视图实例,应存轻量 Hashable 路由数据;router 需 @MainActor 与 @Observable;深链解析应集中而非分散处理。资料还给出评审清单,并指向 navigationstack、sheets、tabview、deeplinks 等参考文件。具体安装方式暂未提供。