반응형
뷰 컨트롤러(View Controller)
- 하위에 있는 콘텐츠를 관리하고, 보여주거나 숨기는 등의 구성을 조정하는 역할
- 내부적으로 뷰를 포함하고 있으며, 뷰에 대한 관리를 주로 한다.
- 대부분의 뷰 컨트롤러는 화면 전환이 발생할 때 다른 뷰 컨트롤러와 서로 통신하고 조정하는 일을 수행한다.
위의 그림처럼 화면을 구성하는 데에는 세 가지 주요 객체가 사용된다.
- UIScreen : 기기에 연결되는 물리적인 화면을 정의하는 객체
- UIWindow : 화면 그리기 지원 도구를 제공하는 객체
- UIView : 그리기를 수행할 객체 세트
수많은 UIView 객체가 모인 Window는 이들을 화면으로 구성하여 Screen 객체에 보내고, Screen 객체는 이를 물리적인 기기에 표시한다. 이 객체들은 모두 UIKit 프레임워크에 정의된 클래스이며 아래의 그림과 같이 UIKit 프레임워크 내에 정의되어 있다.
위 그림에서는 뷰 컨트롤러가 빠져 있다. 사실 뷰 컨트롤러는 화면을 그려내는 데에 반드시 필요한 요소는 아니다. MVC 패턴을 사용하는데 있어서 사용되는 컨트롤러 객체라고 볼 수 있다. 뷰 컨트롤러는 뷰와 리소스를 관리하는 역할을 해야 하고 각 역할에 대한 내용은 모두 UIViewController 클래스에 정의되어 있다. 따라서 모든 뷰 컨트롤러는 UIViewController 클래스를 상속받아야 한다.
그림 1-3은 그림 1-1 구조에서 MVC 패턴에 따라 컨트롤러의 역할을 보강한 아키텍처를 보여준다. 그림에서 보듯이, 화면을 구성할 때 Window에 뷰 객체를 바로 할당해서는 안 된다. 대신 Window에 뷰 컨트롤러를 할당해서 뷰 컨트롤러가 자동으로 자신에게 첨부된 뷰들을 화면에 추가하도록 해야 한다.
참고 :
반응형
'iOS > iOS' 카테고리의 다른 글
[iOS 기초] UIView (0) | 2021.11.17 |
---|---|
[iOS 기초] UIKit 프레임워크 (0) | 2021.11.17 |
[iOS 기초] Label, Button 연결 (1) | 2021.10.15 |
[iOS 기초 - 03] 처음 생성된 ViewController.swift의 내용 (0) | 2021.10.15 |
[iOS 기초 - 02] 프로젝트 구성과 스토리보드 (0) | 2021.10.15 |
댓글