iOS导航(模块化MVVM-C)Skill ios-navigation

这个技能专注于iOS应用的SwiftUI导航架构,提供固执己见的导航强制实施,适用于诊所模块化MVVM-C模式。它包括导航规则、最佳实践和参考,用于设计弹性导航流程、协调器管理、深度链接支持、状态恢复和可访问性优化。关键词:iOS, SwiftUI, 导航, MVVM-C, 移动开发, 协调器, 深度链接, 状态恢复, 可访问性。

移动开发 0 次安装 0 次浏览 更新于 3/18/2026

name: ios-navigation description: 面向iOS 26 / Swift 6.2诊所模块化MVVM-C应用的固执己见SwiftUI导航强制实施。强制实施领域协调器协议、应用目标DependencyContainer + 具体协调器 + 路由外壳、NavigationPath所有权、协调器拥有的模态状态、深度链接/状态恢复准备、以及陈旧-同时-重新验证/乐观排队流兼容性。在设计或重构诊所导航流程时使用。

iOS导航(模块化MVVM-C)

面向使用诊所模块化架构的SwiftUI应用的固执己见导航强制实施。专注于协调器 + 路由外壳接线、功能隔离和弹性推送/模态/深度链接流程。

不可协商的约束(iOS 26 / Swift 6.2)

  • 每个导航视图上使用@Equatable宏,从不使用AnyView
  • 到处使用@Observable,从不使用ObservableObject / @Published
  • 应用目标协调器拥有NavigationPath;路由外壳拥有.navigationDestination映射
  • 协调器拥有的模态状态,从不使用内联@State布尔值用于模态
  • 领域层定义协调器协议;具体协调器保持在功能模块之外

诊所架构契约(iOS 26 / Swift 6.2)

本技能中的所有指导假设诊所模块化MVVM-C架构:

  • 功能模块仅导入Domain + DesignSystem(从不导入Data,从不导入兄弟功能)
  • 应用目标是聚合点并拥有DependencyContainer、具体协调器和路由外壳接线
  • Domain保持纯Swift并定义模型加上仓库、*CoordinatingErrorRoutingAppError契约
  • Data拥有SwiftData/网络/同步/重试/后台I/O并实现Domain协议
  • 读/写流默认采用陈旧-同时-重新验证读取和乐观排队写入
  • 视图模型直接调用仓库协议(无默认用例/交互器层)

何时应用

参考这些指南当:

  • 使用NavigationStack或NavigationSplitView设计导航层次结构
  • 选择推送、模态和全屏覆盖
  • 实现英雄动画、缩放过渡或手势驱动的取消
  • 构建多步骤流程(如入门、结账、注册)
  • 使用@Observable与@Environment和@Bindable共享导航状态
  • 审查代码以查找导航反模式和模块化架构合规性
  • 添加深度链接、状态恢复或选项卡持久化
  • 确保VoiceOver和减少运动支持导航

按优先级分类的规则类别

优先级 类别 影响 前缀
1 导航架构 关键 arch-
2 导航反模式 关键 anti-

| 3 | 过渡与动画 | 高 | anim- | | 4 | 模态展示 | 高 | modal- | | 5 | 流程编排 | 高 | flow- | | 6 | 导航性能 | 中高 | perf- | | 7 | 导航可访问性 | 中 | ally- | | 8 | 状态与恢复 | 中 | state- |

快速参考

1. 导航架构(关键)

2. 导航反模式(关键)

3. 过渡与动画(高)

4. 模态展示(高)

5. 流程编排(高)

6. 导航性能(中高)

7. 导航可访问性(中)

8. 状态与恢复(中)

如何使用

阅读单个参考文件以获取详细解释和代码示例:

参考文件

文件 描述
references/_sections.md 类别定义和排序
assets/templates/_template.md 新规则模板
metadata.json 版本和参考信息