这个问题一直困扰着我。为什么人们有时将视图控制器作为模态视图控制器?难道你不能总是将视图控制器推到导航控制器上并在以后弹出它吗?这似乎更直接和一致。我见过人们互换使用这两个,它最终让我疯了。
是否有任何特定情况将视图控制器作为模态视图控制器呈现?
答案 0 :(得分:8)
Apple的View Controller Programming Guide描述了它的用途。
模态视图控制器提供了管理流程的有趣方法 你的申请。 最常见的是,应用程序使用模态视图 控制器作为临时中断以获取密钥 来自用户的信息。
和
使用模态视图控制器有几个原因 应用程序:
- 使用它们立即收集用户的信息。
- 使用它们暂时提供一些内容。
- 使用它们暂时更改工作模式。
- 使用它们为不同的设备实现备用接口 取向。
- 使用它们来呈现具有特定类型的新视图层次结构 动画过渡(或无过渡)。
答案 1 :(得分:5)
通常,导航控制器会立即存储(或按下后退按钮时),而模态视图控制器可以同时具有取消和保存按钮。
邮件撰写视图就是一个很好的例子。
答案 2 :(得分:1)
正如Joe指出的那样,Apple的文档提供了一个很好的概述,可以在您的应用中使用模态视图控制器。我怀疑你从编程的角度来看这个太多了,但从用户的角度来看还不够。有时候例子可以进一步说明这一点,因此请考虑以下示例。
在iPhone上,Mail中的默认交互模式是查看之一。在此模式下的邮箱,线程和消息之间的导航是通过在屏幕的左右边缘(弹出和推动视图控制器)之间设置视图之间的过渡动画来处理的。当用户遍历电子邮件消息的层次结构时,这为用户提供了非常需要的可视上下文。
由于撰写新消息不是观看交互的一部分,因此从右侧动画显示该视图没有意义。用户没有导航到新消息,他们正在创建新消息。由于这是一种不同的交互,因此界面以模态呈现。在邮箱之间移动邮件也是如此 - 这也是以模态方式完成的。这些模态视图为用户提供了与应用程序交互方式发生变化的视觉提示。