UIViewController란
- UI(유저 인터페이스)를 관리하는 데 사용되는 객체
→ UIViewController라는 클래스로 정의되어 있고 클래스를 사용해서 사용자 인터페이스 요소들과 로직을 관리하고, 다양한 뷰와 관련된 작업들을 처리한다. 예를 들어 UI 요소(button, label 등)와 이 요소의 동작들을 코드로 구현하여 제어할 수 있다.
UIViewController에서 할 수 있는 것들
-
뷰의 라이프사이클 관리
→ 뷰 컨트롤러가 화면에 처음 표시되거나 화면에서 사라지는 시점 등 이벤트 처리 가능.
이를 통해 초기 설정, 데이터 로딩, 메모리 관리 등의 작업을 수행할 수 있다 -
화면 전환 관리
→ 앱 내 다른 뷰 컨트롤러로 화면전환도 UIViewController를 이용하여 할 수 있다. -
데이터 관리
→ 데이터를 처리하고 관리할 수 있으며, 데이터의 상태에 따라 화면의 뷰들을 업데이트하거나, 다른 UIViewController와도 데이터를 공유할 수 있다. -
사용자의 상호작용 처리
→ 예를 들면 터치 이벤트(touch event)나 드래그 이벤트(drag event) 등을 처리. 이를 통해 사용자의 입력에 따라 특정 처리를 하거나, 화면을 업데이트하거나 할 수 있다.
UIViewController 사용방법
-
Storyboard에서 뷰 컨트롤러 관리
→ Storyboard(iOS 앱의 UI를 디자인할 수 있는 인터페이스 빌더)에서 뷰 컨트롤러를 시각적으로 구성 / 관리. -
생성자 코드를 통해서 객체를 생성
→ 뷰 컨트롤러를 직접 코드로 생성하고 관리UIViewController의 인스턴스 생성 예
import UIKit class MyViewController: UIViewController { // (내용 작성) } let myViewController = MyViewController()
ViewController 종류
-
Container View Controller
→ 다른 뷰 컨트롤러들(Content view controller)을 포함하고 관리하는 뷰 컨트롤러.
하나 이상의 자식 뷰 컨트롤러를 내부에 가지고 있고, 이들을 관리하고 조정하는 역할-
UINavigationController
여러 개의 뷰 컨트롤러를 스택 형태로 관리하여 화면 전환을 제공하는 뷰 컨트롤러
-
UITabBarController
탭바(탭 바) 형태의 사용자 인터페이스를 제공하는 뷰 컨트롤러
-
UISplitViewController
두 개의 하위 뷰 컨트롤러를 마스터(Master)와 디테일(Detail)로 나누어 화면에 표시하는 뷰 컨트롤러(주로 iPadOS의 대형 화면에서 사용)
-
UIPageViewController
스와이프 하거나 탭 하는 등 사용자가 제스처를 사용하여 직접 여러 페이지를 전환할 수 있는 UI 제공하는 뷰 컨트롤러 주로 책 페이지 넘기는 것 같은 방식으로 화면 전환.
💡 UINavigationController와 UITabBarController는 특히 현업에서 가장 많이 쓰이는 컨테이너 뷰 컨트롤러이다.
-
-
Content View Controller
→ 단일 뷰나 특정 콘텐츠를 관리하는 뷰 컨트롤러들
-
UIViewController
가장 기본적인 뷰 컨트롤러로, 단일 뷰와 연결되어 있음
-
UITableViewController
테이블 뷰를 표시하는 데 특화된 뷰 컨트롤러
-
UICollectionViewController
컬렉션 뷰를 표시하는 데 특화된 뷰 컨트롤러
-