首页 理论教育 视图控制器功能全解析

视图控制器功能全解析

时间:2023-06-23 理论教育 版权反馈
【摘要】:在iOS中,UIViewController类是视图控制器的基类,它主要负责加载视图,并在接收到内存告警时处理一些不被展示的内容以保持内存的可用性。UIViewController中加载的视图最终会添加到UIWindow上进行展示,如图11.1.1所示:图11.1.1UIWindow的rootViewController而UIWindow会有一个rootViewController的属性作为应用启动时展示的那个视图的控制器。图11.1.2UIViewController视图管理在MVC模式中,视图控制器承担了大部分的控制任务。视图控制器能够协调所有与之关联的视图行为。

视图控制器功能全解析

在iOS中,UIViewController类是视图控制器的基类,它主要负责加载视图,并在接收到内存告警时处理一些不被展示的内容以保持内存的可用性。此外,UIViewController还为某些标准的系统行为提供自动响应。比如在设备方向变化时,如果应用程序在配置中支持该方向,UIViewController可以对其管理的视图进行尺寸调整,使其适应新的方向。

除了UIViewController类之外,UIKit还提供了很多继承自UIViewController的子类,用于处理不同场景下的视图控制。例如导航控制器(UINavigationController)、页视图控制器(UIPageView Controller)、图片和视频控制器(UIImagePickerViewController),每个视图控制器都对应了不同的应用场景,这在下一小节会详细介绍。

UIViewController中加载的视图最终会添加到UIWindow上进行展示,如图11.1.1所示:

图11.1.1 UIWindow的rootViewController

而UIWindow会有一个rootViewController的属性作为应用启动时展示的那个视图的控制器。在Main.storyboard中选择某个视图控制器作为Is Initial View Controller,那么这个视图控制器就会在应用启动之后作为rootViewController。(www.xing528.com)

每个UIViewController的实例组织并控制一个视图,这个视图通常被看作是这个控制器下的根视图,存放在UIViewController的view属性中,其他视图会依附在这个根视图上并被展示出来,如图11.1.2所示:

图11.1.2 UIViewController视图管理

在MVC模式中,视图控制器承担了大部分的控制任务。但并不是所有的控制任务都需要开发者自己去实现,一些通用并且开发者不该实现的特定任务会由iOS系统自己去实现。具体有哪些任务被实现,完全取决于使用了哪个UIViewController的子类。所有的视图控制器都会执行加载视图和资源的任务,并且选择合适的时机进行加载。

视图控制器能够协调所有与之关联的视图行为。例如某个按钮被点击时,将消息发送给这个按钮绑定的响应函数;某个可以滑动的控件被手指拖动时,可以将其滑动事件回调函数的响应者设置为视图控制器,那么在滑动时,可以由控制器来判断是否进行一些定制化的行为。总而言之,视图控制器负责它的根视图以及依附在根视图上的其他视图的交互逻辑。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈