기어가더라도 제대로

Container View Controller 본문

UIKit 기초

Container View Controller

Damagucci-juice 2022. 2. 18. 15:08

공부용 블로깅입니다. 개선은 환영입니다!

  • View Controller Container의 역할
  • View Controller Container의 종류 (3가지)

Container View Controller

여러 요소를 조합한 인터페이스를 구성하고, 보통 직접 무언가를 보여주는 역할은 없으며, 뷰 컨트롤러간에 부모-자식 관계를 형성하여 자신만의 방식으로 자식을 관리하는 역할을 맡는 뷰 컨트롤러 입니다.

  • 관계
    Container VC - [Child VC]

  • 필요성

    Navigation(Routing) 로직을 분리하여 단일 책임원칙을 지키려는 시도이다.

위의 말은 일반적인 뷰 컨트롤러가 화면 전환 업무까지 담당하면 맡는 책임이 너무 커져 그 역할을 Container에게 넘겼다는 말입니다. content에 충실하고, 화면 전환은 Container가 전담하는 형식이죠.

대표적 Container View Controller

  • Tab Bar Controller
    • 배열 처럼 목표한 항목으로 점프하는 뷰 컨트롤러입니다. 주로 화면의 하단에 위치하며, 어떤 항목을 선택했는지에 따라 배열로 담고있는 뷰 컨트롤러를 보여주는 컨테이너 뷰 컨트롤러입니다. 예시로는 시계 앱의 하단에 알람, 타이머, 세계 시간, 스탑워치등 항목으로 누르면 바로 가는 부분을 생각하면 좋습니다.
  • Navigation Controller
    • 해당 뷰의 제목과 방향 설정을 맡은 컨테이너 뷰 컨트롤러입니다. 주로 화면 상단에 위치합니다. 예시로는 설정 앱에 각 항목들을 타고 타고 들어가는 것을 생각하면 좋습니다.
  • Root View Container와 Master/Detail View Controller 관계
    • 아이패드 가로 모드에서 카카오톡이나 설정앱을 켜면 화면이 두개로 분리되는 느낌을 받으셧나요? 그렇다면 이해가 쉽습니다. 왼편에 채팅방을 요약한 테이블 뷰 컨트롤러가 있고(Master), 오른편에 해당 채팅방의 채팅내역이 상세히 나와있죠(Detail). 여기서 Master와 Detail을 합한 전체 부분을 Root View Controller라고 합니다!
A99A9EBF-B3F7-4E88-B2DA-422C2D43631C 118D60E1-8857-4F98-A2D8-5202E006C189

이미지 출처 : 코드스쿼드 강의자료(비공개)

'UIKit 기초' 카테고리의 다른 글

Navigation controller 를 코드로 구현하기(feat. Storyboard)  (0) 2022.03.23
UIImagePickerController  (0) 2022.03.18
UIButton 의 title을 코드로 바꾸기  (0) 2022.03.14
UIGestureRecognizerDelegate  (0) 2022.03.12
UIViewController  (0) 2022.02.18
Comments