UIViewController

 

Apple Developer Documentation

 

developer.apple.com

UIViewController

An object that manages a view hierarchy for your UIKit app.
UIKit으로 제작된 앱의 뷰계층구조를 관리하는 객체. UIKit으로 앱개발을 하게되면 가장 먼저, 그리고 가장 많이 마주하게 될 클래스이다. 
화면위에 보여지게될 UIView들의 로직과 관리를 담당하게 된다. 그렇다면 UIView는 무엇일까? 
 
UIView
 

Apple Developer Documentation

 

developer.apple.com

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 등이 있다.

 

참고 글

https://velog.io/@swiftist9891/UIView-UIViewController

+ Recent posts