콘텐츠 뷰 컨트롤러
콘텐츠 뷰 컨트롤러는 이미지나 텍스트, HTML페이지 등 앱의 화면에 표현할 콘텐츠를 관리하는 컨트롤러입니다.
이를 위해 콘텐츠 뷰 컨트롤러는 화면 전체 사이즈의 루트 뷰를 내장하고 있으며, 이 뷰 위에 각종 콘텐츠를 얹어 화면에 출력합니다.
뷰 컨트롤러를 정의하는 기본 클래스는 UiViewController입니다.
UiViewController를 상속받아 새로운 커스텀 뷰 컨트롤러를 정의하고, 스토리보드에 구현된 화면과 연결합니다. 이 때 커스텀 뷰 컨트롤러에 작성한 커스텀 코드는 스토리보드의 화면을 제어하여 우리가 원하는 대로 앱이 동작할 수 있도록 해줍니다.
커스텀 뷰 컨트롤러를 정의할 때에는 기본 화면 구조를 어떻게 설계할 것인가에 따라 상속받을 부모 클래스를 상황에 맞게 적절히 선택해야 합니다.
테이블 뷰 컨트롤러를 선택할 때에는 주로 목록 형식의 화면을 구성할 때 서브 클래싱하는 것이 좋습니다. 테이블 뷰가 루트 뷰로 내장되어 있을 뿐만 아니라 목록 구현에 필요한 대부분의 처리를 알아서 해 주기 때문입니다.
컬렉션 뷰 컨트롤러를 선택할 때에는 주로 타일이나 바둑판처럼 컬렉션 형식으로 기본 화면을 구성할 때 서브 클래싱하는 것이 좋습니다. 대표적으로 사진첩의 앨범 기능이 있습니다.
스크롤 뷰 컨트롤러를 선택할 때에는 주로 아래로 길게 이어지는 형태의 기본 화면을 구성할 때 서브 클래싱하는 것이 좋습니다. 컬렉션 뷰 컨트롤러, 테이블 뷰 컨트롤러도 스크롤 기능을 포함하고 있긴 하지만, 목록이나 컬렉션 형태가 아닌 일반 형태에서 스크롤되는 화면을 구현하기 위해서는 스크롤 뷰 컨트롤러가 적절합니다.
컨테이너 뷰 컨트롤러
컨테이너 뷰 컨트롤러는 뷰 컨트롤러와 뷰 컨트롤러의 연결 관계를 관리하는 컨트롤러입니다.
iOS는 화면의 제약으로 인해 기본적으로 한 화면에 하나의 뷰 컨트롤러만 표시할 수 있기 때문에, 나머지 뷰 컨트롤러에 접근하는 효율적인 수단을 제공하는 것이 중요합니다.
이를 위해 컨테이너 뷰 컨트롤러는 하나의 뷰 컨트롤러에서 다른 뷰 컨트롤러로 쉽고 자연스럽게 이어지도록 다양한 수단을 제공합니다.
컨테이너 뷰 컨트롤러에 해당하는 대표적인 뷰 컨트롤러로는 내비게이션 컨트롤러, 탭 바 컨트롤러, 분할 뷰 컨트롤러, 페이지 뷰 컨트롤러 등이 있습니다.
참고 : 꼼꼼한 재은씨의 스위프트 실전편
잘못된 부분 있으면 댓글 남겨주시면 감사하겠습니다.
'iOS' 카테고리의 다른 글
[iOS] CocoaPods이란 (0) | 2018.04.30 |
---|---|
[iOS] info.plist - App Transport Security이란 (0) | 2018.04.29 |
[iOS] 뷰 - Frame, Bounds 속성 (0) | 2018.04.26 |
[iOS] Label - 줄바꿈 속성(Line Break Option) (0) | 2018.04.15 |
[iOS] 뷰 컨트롤러 생명주기 (ViewController Lifecycle) (0) | 2018.04.06 |