Design 进阶 20m
探索 iOS 导航设计
Explore navigation design for iOS
2022年6月6日
一句话判断
如果你觉得自己的 App 导航体验还能更好,这场 Session 提供了一套从 Tab Bar 到层级导航再到模态弹窗的完整设计审视框架。
这场 Session 讲了什么
这是面向 iOS 开发者和设计师的导航设计指南。演讲者 Sarah McClanahan 从 Tab Bar 的信息架构讲起,逐步扩展到层级导航(Hierarchical Navigation)和模态展示(Modal Presentation)两大交互模式。核心观点是:好的导航设计应该让人意识不到导航的存在——用户把注意力放在内容和体验上,而不是”怎么找到东西”。
Tab Bar 部分用一个骑行路线 App 的案例,完整演示了如何从功能堆砌的混乱状态,通过重新审视信息层级,一步步推导出清晰的 Tab 结构。演讲者特别强调了几个常见反模式:把所有功能塞进第一个 Tab、用”Home”作为万能入口、在不同 Tab 间重复放置相同功能。这些做法表面上是提高功能曝光率,实际上让用户更困惑。
层级导航部分讨论了如何帮助用户建立空间感知,理解”我在哪里、我从哪里来、我能去哪里”。模态展示则聚焦于什么时候该用模态、什么时候不该用,以及如何设计合理的Dismiss交互。
值得深挖的点
- Tab Bar 的平衡原则:第一个 Tab 功能过载是最常见的导航设计错误。应该根据用户使用场景而非功能重要性来分配 Tab。演讲者建议问自己一个根本问题:“用户为什么用你的 App?“——答案决定了 Tab 的组织方式。
- “Home” Tab 的陷阱:很多内容型 App 喜欢用 Home Tab 做功能大杂烩,这在信息架构上是有害的。每个 Tab 应该自成一个完整的内容领域,有自己的生命周期和使用场景。
- 层级导航的可预测性:用户需要能够预测操作的结果。如果点击某个元素的行为不可预测,导航体验就会崩塌。保持一致性比提供更多功能更重要。
- 模态的使用时机:模态适合独立的、有明确起点和终点的任务。不适合需要上下文切换或多步浏览的场景。错误使用模态会让用户感到”被困住”。
代码片段
这场 Session 侧重设计原则,没有具体代码示例。但提到的关键 API 包括:
// Tab Bar 的最佳实践:每个 Tab 对应独立的内容领域
TabView {
PlacesView() // 地点浏览 - 内容核心
.tabItem { Label("Places", systemImage: "map") }
ItinerariesView() // 行程管理 - 独立工作流
.tabItem { Label("Itineraries", systemImage: "list") }
ProfileView() // 个人设置
.tabItem { Label("Profile", systemImage: "person") }
}
最佳实践
- Tab 的数量控制在 3-5 个,每个 Tab 的标题和图标要能独立传达功能含义
- 不要在多个 Tab 中重复放置同一功能入口——这会破坏用户对信息架构的理解
- 层级导航中,提供清晰的返回路径和当前位置标识
- 模态展示要有明显的关闭方式,且只在真正需要用户专注完成某项任务时使用
- 设计导航时,先确定信息层级,再选择对应的 UI 控件——而不是反过来
还有什么值得关注
- 如果你在做 iPad 或 Mac 适配,导航设计需要考虑 sidebar 替代 Tab Bar 的场景
- 本场提到的设计原则同样适用于 watchOS 和 tvOS 的导航设计,只是 UI 表现形式不同
- 搭配 “Meet UIKit button configurations” 和 “Adopt desktop class editing interactions” 一起看,可以构建更完整的交互设计知识体系
WWDC 2022