什么是 UIViewController?
UIViewController是界面的管理者,负责管理一个视图UIView的生命周期和用户交互。
它包含一个view属性,这个属性是一个 UIView的实例,代表该控制器管理的根视图。
UIViewController通过生命周期方法(如viewDidLoad、viewWillAppear等)来管理视图的显示和隐藏。
每个UIViewController通常对应一个屏幕或一个功能模块。
什么是 UIView?
UIView是界面上显示的内容,负责展示 UI 元素和处理触摸事件。
UIViewController的根视图可以包含多个子视图,这些子视图可以是系统提供的控件(如按钮、标签等),也可以是自定义的视图。
UIView 是 UIViewController 管理的视图层次结构中的一部分。
它们之间的关系
UIViewController通过其view属性管理根视图,以及根视图中的所有子视图。
UIViewController不直接处理绘图,而是通过UIView来处理。
想象一下你正在进行一场演出,UIViewController 就像导演。它控制着舞台上的一切——什么时候灯光亮起,演员如何移动,舞台布景怎么变化。在应用程序中,UIViewController 控制着界面上各个元素的显示和交互。它决定了:
• 界面何时显示或隐藏。
• 用户与界面交互时,应用如何响应。
而 UIView 就是舞台本身,以及上面的布景和道具。它是用户可以看到并与之交互的部分。在应用中,UIView 包括按钮、标签、图片等界面元素。UIView 负责展示这些内容,但不处理背后的逻辑——这是 UIViewController 的工作。
UIViewController(导演)告诉 UIView(舞台)该展示什么内容和如何回应观众的互动。每个 UIViewController 都有一个主 View,它可能包含多个子 View,就像舞台上可能有多个道具和布景。
它们关系图如下:
+---------------------+
| UIViewController |
|---------------------|
| view: UIView | ◀─── 管理
+----------▲----------+
│
│
+----------┴----------+
| UIView | ◀─── 根视图
|---------------------|
| Subview 1 |
| Subview 2 |
| Subview 3 |
+---------------------+
通过代码或Storyboard,UIViewController可以创建和管理视图,并通过IBOutlet连接到视图的子元素,以便在代码中操作它们。
代码如下:
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 创建一个 UIView 实例
let myView = UIView()
myView.backgroundColor = .blue
// 将 myView 添加到 viewController 的根视图
self.view.addSubview(myView)
}
}
总结来说,UIViewController是视图的管理者,负责逻辑控制和生命周期管理,而UIView是实际显示在屏幕上的内容。

