면접 질문 : 앱 화면의 컨텐츠를 표시하는 로직과 관리를 담당하는 객체를 무엇이라고 하는가?
UIViewController
•
UIKit으로 제작된 앱의 뷰 계층구조를 관리하는 객체이다.
•
UIKit으로 앱 개발을 하게 되면 가장 먼저, 그리고 가장 많이 마주하게 될 클래스이다.
•
화면 위에 보여지게 될 UIView들의 로직과 관리를 담당하게 된다.
•
UIViewController가 하는 일
◦
뷰의 컨텐츠 업데이트, 주로 기본 데이터의 변경에 반응
◦
뷰와 사용자간의 상호작용에 반응
◦
전반적인 인터페이스 레이아웃 관리 및 뷰의 사이즈 조정
◦
다른 컨트롤러와의 화면 전환
•
ViewController는 연결되어 있는 화면의 가시성(Visibility)에도 관여하게 된다.
•
즉, 화면이 나타나고 사라지는 생명주기 단계에 해당되는 함수를 자동적으로 호출한다.
UIViewController는 화면을 관리하는 하나의 단위 이다.
ContentViewController
•
가장 기본적인 뷰 컨트롤러로서 하나의 화면을 담당하고, 그 안에서의 UIView 객체에 대한 생성과 관리를 맡으며 사용자와의 상호작용을 담당한다.
ContainerViewController
•
하나 이상의 뷰 컨트롤러를 관리하는 뷰 컨트롤러.
•
하나 이상인 컨트롤러의 레이아웃, 화면 전환을 담당한다.
UIView
•
화면 위의 컨텐츠를 관리하기 위한 사각형 영역 객체를 UIView 라고 정의하고 있다.
•
즉, 사용자에게 보일 UILabel, UIButton과 같은 화면 구성요소들을 모두 UIView 라고 하고, 이러한 객체들을 관리하기 위한 객체가 UIViewController 이다.