UIViewController 是什么
UIViewController 的含义
UIViewController 的作用
功能 |
说明 |
创建和管理界面 |
界面显示什么内容(文字、按钮、图片) |
处理用户操作 |
点击、滑动、输入 |
页面跳转 |
进入下一个页面、返回上一个页面 |
生命周期管理 |
页面加载、显示、消失时执行特定逻辑 |
管理内存 |
页面销毁时清理资源 |
UIViewController 的结构
UIViewController└── self.view├── UILabel(文字)├── UIButton(按钮)├── UIImageView(图片)└── 其他子视图
// 你操作的所有控件(按钮、文本框、图片),其实都放在这个控制器的 view 里。
常见例子
@implementation ViewController// 视图控制器的生命周期方法:当视图被加载到内存中时调用一次
- (void)viewDidLoad {[super viewDidLoad]; // 一定要先调用父类的实现:让 UIViewController 做它自己的初始化工作NSLog(@"页面加载完成"); // 在控制台打印一条信息,调试时用来确认 viewDidLoad 被触发// 设置根视图的背景色为白色(默认是透黑或系统色)self.view.backgroundColor = [UIColor whiteColor];// 创建一个系统风格的按钮(UIButtonTypeSystem)UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];// 设置按钮在父视图中的位置和大小:x=100 y=100 宽120 高40btn.frame = CGRectMake(100, 100, 120, 40);// 设置按钮在普通状态下显示的文字[btn setTitle:@"点我跳转" forState:UIControlStateNormal];// 给按钮添加事件:当用户触摸并抬起(TouchUpInside)时,调用当前对象的 goNext 方法[btn addTarget:self action:@selector(goNext) forControlEvents:UIControlEventTouchUpInside];// 把按钮加入到当前控制器的根视图上,这样才能显示[self.view addSubview:btn];
}// 自定义方法:响应按钮事件,负责“切换场景 / 打开新界面”
- (void)goNext {// 创建一个新的 UIViewController 实例,作为要展示的下一个页面// 这里的 UIViewController 类似创建一个新的画布UIViewController *nextVC = [[UIViewController alloc] init];// 设置新页面的背景颜色为橙色,便于区分当前页面和新页面nextVC.view.backgroundColor = [UIColor orangeColor];// 以模态方式弹出 nextVC(默认表现依 iOS 版本不同可能是卡片或全屏)// animated:YES 表示带动画,completion:nil 表示动画完成后不额外执行代码[self presentViewController:nextVC animated:YES completion:nil];
}@end
与其他控制器类的关系
控制器 |
作用 |
UIViewController |
最基础的控制器(所有页面的爸爸) |
UINavigationController |
管理页面跳转(push/pop) |
UITabBarController |
底部切换(主页/设置/我的) |
UITableViewController |
列表页面 |
总结
比喻 |
真实意义 |
🎬 导演 |
控制整个页面的逻辑 |
🎨 舞台 |
UIView (用户能看到的部分) |
🎭 演员 |
按钮、文字、图片等控件 |
🔄 换场 |
页面切换、跳转 |
UIViewController
可以说是一个页面的大脑,没有它,界面就只是死的画布。