
UIViewController 是 iOS 开发中最基本的视图控制器类,它用于管理应用的视图层次结构,处理用户交互事件,并与导航控制器、标签控制器等其他 UI 组件配合使用。在开发过程中,UIViewController 是每个 iOS 应用的核心组成部分,理解它的生命周期、常用方法和属性是非常重要的。本文将从多个角度深入解析 UIViewController,帮助开发者更好地理解和使用它。
1. UIViewController 的生命周期
UIViewController 的生命周期是指从创建到销毁的整个过程,主要包括以下几个关键阶段:
- initWithNibName:创建 UIViewController 实例时,可以通过指定 nib 文件来初始化视图。
- viewDidLoad:视图初次加载时调用,通常在这个方法中初始化视图控件和数据。
- viewWillAppear:视图即将显示时调用,可以用来更新视图数据或执行动画。
- viewDidAppear:视图已经显示时调用,适合执行需要视图已完全呈现的操作。
- viewWillDisappear:视图即将消失时调用,可以用来暂停动画或清理资源。
- viewDidDisappear:视图已经消失时调用,适合释放不再需要的资源。
- dealloc:视图控制器被销毁时调用,释放内存资源。
这些生命周期方法为开发者提供了精细的控制点,可以在此时插入相应的逻辑代码。
2. UIViewController 的常用方法
UIViewController 提供了丰富的 API 方法,能够满足各种 UI 开发需求:
-
viewDidLoad:在视图加载完成后调用,用于初始化视图布局和数据。这个方法非常适合进行 UI 组件的初始化和配置。
-
viewWillAppear:在视图即将显示之前调用,适合进行数据更新、动画初始化等操作。
-
viewDidAppear:视图显示后调用,适合执行需要视图已完全呈现的操作,如启动动画或显示提示信息。
-
presentViewController:用于模态展示其他视图控制器,可以自定义呈现方式和动画效果。
-
pushViewController:在导航控制器中展示新的视图控制器,实现页面之间的切换。
UIViewController 还支持自定义视图的布局和动画效果,通过 overrideเห็น