WWDC Quick Look 💓 By SwiftGGTeam
Explore navigation design for iOS

Explore navigation design for iOS

观看原视频

Highlight

好的导航设计让用户感觉不到导航的存在。Sarah McClanahan 从 Tab Bar、层级导航、模态展示三个维度出发,用骑行 App 案例演示了如何从功能堆砌逐步推导出清晰的信息架构,并指出常见反模式:把”Home”当作万能入口、在多个 Tab 间重复相同功能、滥用模态打断用户心流。


核心内容

导航问题通常被当作”选什么控件”来讨论:用 Tab Bar 还是侧边栏?用 push 还是 modal?但这场 session 的切入点更靠前——先弄清楚你的信息到底是什么结构,再选对应的导航模式。(00:30

Sarah 用一个骑行路线 App 的案例贯穿全场。初始版本里,这个 App 把所有功能都堆在第一个 Tab 里:路线列表、路线详情、个人资料、设置、收藏,全部挤在一个页面,用户找东西全靠猜。团队最初的想法很简单——“放在第一个 Tab 用户肯定能看到”。结果刚好相反:用户什么也找不到,因为信息没有层级,所有东西看起来一样重要。(02:15

重设计的思路是重新审视信息结构,而不只是换控件。哪些是平级关系?哪些是父子关系?哪些是临时任务?回答完这三个问题后,Tab 结构自然浮现:路线浏览、收藏、个人资料三个 Tab,每个 Tab 内部用层级导航深入,创建路线用模态展示。这组选择是从信息结构推导出来的,不是拍脑袋定的。(04:40

层级导航部分讨论的是”让用户知道自己在哪”。Sarah 强调返回按钮的标签应该显示上一级页面的标题,而不是写”Back”;当前页面的标题要始终可见;导航栏的层级不要超过 3 层——再深就应该用模态或独立 Tab 分担。(08:10

模态展示是最容易被滥用的模式。Sarah 给出了一条判断标准:模态用于”用户需要完整、专注地完成一件事,然后才能回到主流程”。创建内容、填写表单、选择照片——这些是模态的好场景。弹一个广告、强制评分、非必要的通知——这些不应该用模态。她还特别指出一个常见错误:模态里再弹模态,用户不知道自己在哪一层,dismiss 行为变得不可预测。(12:30


详细内容

从功能堆砌到清晰的信息架构

01:50)骑行 App 的初始设计是典型的”首页万能”反模式。所有功能挤在第一屏,没有分组,没有优先级。Sarah 的诊断步骤是:

  1. 列出所有功能点
  2. 按用户心智模型分组(不是按开发者的代码结构)
  3. 区分平级关系(用 Tab)和父子关系(用层级导航)
  4. 识别临时任务(用模态)

分组结果:路线相关(浏览、搜索、详情)、个人相关(收藏、历史、资料)、设置相关(偏好、通知、隐私)。三个 Tab 对应三个用户意图,每个 Tab 的图标和标题能独立传达含义。

关键点:

  • 功能分组依据是用户目标,不是代码模块
  • 每个 Tab 要能独立存在——用户从任何 Tab 进入都应该知道自己在哪
  • “Home” Tab 是万恶之源:它不传达任何信息,只是把所有东西堆在一起

Tab Bar 的常见陷阱

05:20)Sarah 列出了三个最常犯的错误:

在多个 Tab 中重复同一功能。 表面上是提高曝光率,实际上破坏了用户对信息架构的心智模型。用户会困惑:这个功能到底属于哪个 Tab?如果从不同 Tab 进入看到的是同一个页面,那 Tab 的意义就消失了。

Tab 数量超过 5 个。 5 个以上的 Tab 会触发”更多”入口,把额外的功能藏进去。Sarah 的建议是:如果你觉得需要 6 个 Tab,先问自己是不是把平级关系和父子关系搞混了。超过 5 个时,考虑用层级导航分担。

用图标代替文字。 图标可以辅助识别,但不能替代文字标签。没有文字的图标需要用户猜测含义,增加认知负担。即使是系统图标,也应该配上文字标签。

层级导航的空间感知

07:30)层级导航的核心是让用户建立”我在哪”的空间感,push 和 pop 只是实现手段。Sarah 给出三条原则:

  • 返回按钮的标签显示上一级页面的标题,而不是”Back”
  • 当前页面的标题始终可见,不因为滚动而隐藏
  • 导航深度控制在 3 层以内;超过 3 层时,把深层内容拆到新 Tab 或用模态展示

她还提到一个细节:列表行的 disclosure indicator(那个向右的小箭头)是一个重要的视觉线索。它告诉用户”点这里可以深入”。如果没有下一级,就不要放这个箭头——否则用户点击后发现没反应,会觉得 App 出 bug 了。

模态的正确用法

11:00)模态的本质是”打断当前流程,让用户完成一个独立任务”。Sarah 的判断框架:

应该用模态的场景:

  • 创建新内容(写帖子、新建路线、添加联系人)
  • 需要用户做出明确选择才能继续(选择照片、选择日期)
  • 需要用户集中注意力的任务(填写表单、编辑详情)

不应该用模态的场景:

  • 展示信息(用 push 导航)
  • 非关键的提示(用 banner 或 toast)
  • 可以异步完成的任务(用后台处理)
  • 模态套模态(用户迷失层级,不知道 dismiss 会回到哪)

模态的关闭方式也很重要。Sarah 强调:必须有明显的关闭按钮或下滑手势;如果用户在模态里做了修改,关闭前要有确认——“你确定要放弃修改吗?“这是在保护用户的数据,不是多余的打扰。


核心启发

  • 做什么:给你的 App 做一次信息架构审计。
    为什么值得做:Sarah 的诊断方法可以直接套用——列出所有功能,按用户目标分组,区分平级/层级/临时关系。很多导航混乱不是控件选错了,是信息结构没理清。
    怎么开始:拿出一张纸,把 App 所有页面列出来,按”这个页面用户想完成什么”重新分组,然后和当前的 Tab 结构对比。

  • 做什么:检查所有模态使用场景,移除不必要的模态。
    为什么值得做:模态是最容易被滥用的交互模式。Sarah 的判断标准很实用——如果用户不完成这个任务就无法回到主流程,用模态;否则考虑 push 或其他非阻断方式。
    怎么开始:在代码里搜索 presentsheet,逐个问自己:这个场景是否真的需要阻断用户当前流程?

  • 做什么:把返回按钮标签改成上一级页面的标题。
    为什么值得做:Sarah 反复强调空间感知——用户需要知道”回去会到哪”。泛泛的”Back”不如具体的”路线列表”有用。这是一个成本极低的改进。
    怎么开始:UIKit 会自动使用上一级 ViewController 的 title 作为返回按钮标签,检查你的 title 是否准确描述了页面内容。


关联 Session

  • What’s new in UIKit — learn about the latest updates to uikit including new navigation styles, improved collection view performance, and more.
  • Design app experiences with charts — learn how to design effective data visualization experiences using swift charts and the latest charting apis.
  • The craft of SwiftUI API design — learn how apple designs swiftui apis by looking at real examples, and discover principles for designing your own apis.
  • Design an effective infographic — learn principles for creating clear, accessible infographics that communicate complex information effectively.
  • Design for Arabic — learn the foundations of designing apps and games for arabic-speaking audiences, including layout, typography, and iconography.

评论

GitHub Issues · utterances