ViewController 简介
Cocoa Touch 采用了 Model-View-Controller (MVC) 的 设计模式,在该设计模式中,一个Controller 对象是连结数据和视图之间的桥梁。对于IOS程序,View Controller 则用来展示和管理一系列的视图,从UIViewController继承而来。
ViewController 在IOS程序的设计和执行中担当着一个很重要的角色。由于IOS设备屏幕空间的限制,程序在设计中需要考虑如何灵活的展示信息给用户。如果一个程序包含很多的内容,那么可能需要在不同的时间来显示或者隐藏部分内容。ViewController可以管理相关内容的视图,以及显示或者隐藏它们。
上图展示了三个不同的屏幕(但是是相关的),第一个屏幕是一个菜谱的列表,点击某一行就会显示第二个屏幕(详细信息),点击小图片就会进入第三个屏幕全屏显示大图。每个屏幕都由不同的三个viewcontroller来管理,展示合适的view和数据,以及和视图的交互。
ViewController 类集
1.Custom View Controller
Custom View Controllers 是程序的内容的主要协调管理者。可以通过继承UIViewController来创建一个custom view controller。Custom View Controller 用来管理自定义的内容,所以这个view controller的很多代码都比较特殊,不过也有一些通用的所有的view controller都支持的行为。
2. Table View Controller
UITableViewController类是Custom View Controller 的一个特别设计类型,用来管理表格数据的控制器。UITableViewController支持很多标准的和表格相关的行为,例如:选取,行编辑,表格配置等。同时可以继承该类来执行额外的自定义功能,当然,任何由UITableViewController控制的View都应包含一个表格视图对象。
3. Navigation Controller
Navigation Controller 是一个容器试图控制器,使用UINavigationController类。该类的方法支持管理Custom View Controller的集合,也就是该类用来控制多个试图控制器的交互显示。UINavigationController通过一个导航栏来控制显示用户当前的信息,返回按钮用来返回到上一个屏幕。同时Navigation Controller也管理一个可选的工具栏,该工具栏用来执行与当前显示屏幕有关的一些行为。导航栏和工具栏不能够被直接修改,但可以配置它们。
4. Tab Bar Controller
Tab Bar Controller也是一个容器类视图控制器。Tab Bar Controller用一个tab bar view来显示不同的模式,当一个tab被选中,和它相关的view controller就会在屏幕上展示。如果你的程序需要显示不同的数据模块,或者用不同的方式显示相同的数据,那么就可以使用UITabViewController。
5. Split View Controller
Split View Controller也是一个容器类试图控制器,使用UISplitViewController。Split视图界面来自于两个视图控制器,在横屏时,Split View Controller左右两边各自显示一个view controller。竖屏时,则显示一个view controller,另外一个则使用popover的方式交互显示。
总结:View Controller作用就是以不同的方式来展示不同的view,并且控制数据和视图的交互。