【发布时间】:2011-08-15 18:12:51
【问题描述】:
这个问题一直困扰着我。为什么人们有时将视图控制器呈现为模态视图控制器?你不能总是把一个视图控制器推到导航控制器上然后再弹出它吗?它似乎更加直接和一致。我见过人们交替使用这两者,结果让我抓狂。
在某些特定情况下,将视图控制器呈现为模态视图控制器会更好吗?
【问题讨论】:
标签: iphone objective-c ios
这个问题一直困扰着我。为什么人们有时将视图控制器呈现为模态视图控制器?你不能总是把一个视图控制器推到导航控制器上然后再弹出它吗?它似乎更加直接和一致。我见过人们交替使用这两者,结果让我抓狂。
在某些特定情况下,将视图控制器呈现为模态视图控制器会更好吗?
【问题讨论】:
标签: iphone objective-c ios
Apple 的 View Controller Programming Guide 很好地描述了它的用途。
模态视图控制器提供了有趣的方式来管理 你的申请。 最常见的是,应用程序使用模态视图 控制器作为临时中断以获取密钥 来自用户的信息。
和
在您的应用中使用模态视图控制器有几个原因 应用:
- 使用它们立即从用户那里收集信息。
- 使用它们临时呈现一些内容。
- 使用它们临时更改工作模式。
- 使用它们为不同的设备实现备用接口 方向。
- 使用它们来呈现具有特定类型的新视图层次结构 动画过渡(或无过渡)。
【讨论】:
通常,导航控制器会立即存储(或按下后退按钮时),而模态视图控制器可以同时具有取消和保存按钮。
邮件撰写视图就是一个很好的例子。
【讨论】:
正如 Joe 所指出的,Apple 的文档为在您的应用程序中使用模态视图控制器提供了很好的概述。不过,我怀疑您从编程的角度考虑了太多,而从用户的角度考虑还不够。有时示例可以进一步说明这一点,因此请考虑以下示例。
在 iPhone 上,Mail 中的默认交互方式是查看方式之一。在此模式下,邮箱、线程和消息之间的导航是通过屏幕左右边缘的视图之间的动画转换来处理的(弹出和推送视图控制器)。这为用户在遍历其电子邮件消息的层次结构时提供了急需的视觉上下文。
由于撰写新消息不是查看交互的一部分,因此从右侧为该视图设置动画是没有意义的。用户没有导航到新消息,他们正在创建新消息。由于这是一种不同的交互,因此界面以模态方式呈现。在邮箱之间移动消息也是如此 - 这也是模态完成的。这些模态视图向用户提供视觉提示,表明他们与应用交互的方式发生了变化。
【讨论】: