UIViewController
UIViewController
An object that manages a view hierarchy for your UIKit app.
UIView
An object that manages the content for a rectangular area on the screen.
화면 위의 콘텐츠를 관리하기 위한 사각형 영역 객체를 UIView라고 정의하고 있다. 즉 사용자에게 보일 UILabel, UIButton과 같은 화면 구성요소들을 모두 UIView라고 하고 이러한 객체들을 관리하기 위한 객체가 UIViewController이다.
UIViewController에 대해 이어서 설명하자면 UIViewController가 하는 대표적인 일은 다음과 같다.
- 뷰의 컨텐츠 업데이트, 주로 기본 데이터의 변경에 반응.
- 뷰와 사용자간의 상호작용에 반응.
- 전반적인 인터페이스 레이아웃 관리 및 뷰의 사이즈 조정
- 다른 컨트롤러와의 화면 전환
뷰 컨트롤러는 연결되어있는 화면의 가시성(visibility)에도 관여하게 된다. 즉 화면이 나타나고 사라지는 생명주기 단계에 해당되는 함수를 자동적으로 호출한다.
그림에 표현된 것 이외에도 생명주기에 관련된 함수가 몇 가지 더 있지만 해당 부분은 생명주기에 대한 자세한 글로 적으려 한다.
정리해서 말하자면 UIViewController는 화면을 관리하는 하나의 단위라고 설명하고싶다.
많은 종류의 UIViewController가 있지만 크게 두 가지 유형으로 나뉜다.
ContentViewController
가장 기본적인 뷰 컨트롤러로서 하나의 화면을 담당하고 그 안에서의 UIView 객체에 대한 생성과 관리를 맡으며 사용자와의 상호작용을 담당한다.
ContainerViewController
하나 이상의 뷰 컨트롤러를 관리하는 뷰 컨트롤러. 하나 이상인 컨트롤러의 레이아웃, 화면 전환을 담당한다.
대표적으로 UINavigationController, UITabBarController 및 UISplitViewController 등이 있다.
참고 글
'iOS > Study' 카테고리의 다른 글
[iOS] 앱이 시작할 때 main.c 에 있는 UIApplicationMain 함수에 의해서 생성되는 객체는 무엇인가? (0) | 2022.12.10 |
---|---|
[iOS] App thinning에 대해서 설명하시오. (0) | 2022.12.06 |
[iOS] 앱의 콘텐츠나 데이터 자체를 저장/보관하는 특별한 객체를 무엇이라고 하는가? (0) | 2022.11.26 |
[iOS] 실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오. (0) | 2022.11.24 |
[iOS] Bounds 와 Frame 의 차이점을 설명하시오. (0) | 2022.11.21 |