用途:为 SwiftUI 应用实现导航模式,涵盖推入导航、多栏布局、sheet 呈现、标签页架构与深链接。基于 iOS 26+、Swift 6.3,模式大多向后兼容至 iOS 17。
主要能力:NavigationStack 配合 NavigationPath 绑定实现类型安全的程序化推入导航,用 Hashable 枚举定义路由并以 .navigationDestination(for:) 映射;复杂应用可用 router 对象持有 path 与 sheet 状态,注入 .environment(),集中映射目标。NavigationSplitView 用于 iPad 与 Mac 的侧栏—详情布局,iPhone 上回退为栈式导航;需要自定义多栏时可用手动 HStack 配合 horizontalSizeClass。sheet 呈现优先用 .sheet(item:) 而非 .sheet(isPresented:),sheet 自行处理 dismiss;iOS 18+ 可用 .presentationSizing 控制尺寸(.form、.page、.fitted、.automatic)。标签页用 Tab(value:) 与 TabView(selection:),每个标签独立嵌套 NavigationStack;iOS 26 新增 Tab(role: .search)、.tabBarMinimizeBehavior(仅 iPhone)、.tabViewSidebarHeader/Footer、.tabViewBottomAccessory、TabSection 等。深链接支持 Universal Links(需 AASA 文件与 Associated Domains 权限,用 .onOpenURL 与 .onContinueUserActivity 处理)、自定义 URL Scheme(Info.plist 中 CFBundleURLTypes)与 Handoff(NSUserActivity)。
使用方式:按路由枚举与 .navigationDestination 映射构建导航;用 router 集中处理 URL 解析。
限制与常见错误:勿用已弃用的 NavigationView;每个标签需独立 path,不可共用一个 NavigationPath;NavigationPath 中应存轻量 Hashable 路由数据而非视图实例;tabBarMinimizeBehavior 仅 iPhone;深链接解析应集中在 router;router 类需 @MainActor(Swift 6 并发安全)。资料未提供安装命令与具体版本依赖。