iOS

[iOS] 콘텐츠 뷰 컨트롤러, 컨테이너 뷰 컨트롤러

devharrry 2018. 4. 26. 18:39

콘텐츠 뷰 컨트롤러

콘텐츠 뷰 컨트롤러는 이미지나 텍스트, HTML페이지 등 앱의 화면에 표현할 콘텐츠를 관리하는 컨트롤러입니다

이를 위해 콘텐츠 뷰 컨트롤러는 화면 전체 사이즈의 루트 뷰를 내장하고 있으며, 이 뷰 위에 각종 콘텐츠를 얹어 화면에 출력합니다.

 

뷰 컨트롤러를 정의하는 기본 클래스는 UiViewController입니다.

UiViewController를 상속받아 새로운 커스텀 뷰 컨트롤러를 정의하고, 스토리보드에 구현된 화면과 연결합니다. 이 때 커스텀 뷰 컨트롤러에 작성한 커스텀 코드는 스토리보드의 화면을 제어하여 우리가 원하는 대로 앱이 동작할 수 있도록 해줍니다.

 

커스텀 뷰 컨트롤러를 정의할 때에는 기본 화면 구조를 어떻게 설계할 것인가에 따라 상속받을 부모 클래스를 상황에 맞게 적절히 선택해야 합니다.


테이블 뷰 컨트롤러를 선택할 때에는 주로 목록 형식의 화면을 구성할 때 서브 클래싱하는 것이 좋습니다. 테이블 뷰가 루트 뷰로 내장되어 있을 뿐만 아니라 목록 구현에 필요한 대부분의 처리를 알아서 해 주기 때문입니다.


컬렉션 뷰 컨트롤러를 선택할 때에는 주로 타일이나 바둑판처럼 컬렉션 형식으로 기본 화면을 구성할 때 서브 클래싱하는 것이 좋습니다. 대표적으로 사진첩의 앨범 기능이 있습니다.


스크롤 뷰 컨트롤러를 선택할 때에는 주로 아래로 길게 이어지는 형태의 기본 화면을 구성할 때 서브 클래싱하는 것이 좋습니다. 컬렉션 뷰 컨트롤러, 테이블 뷰 컨트롤러도 스크롤 기능을 포함하고 있긴 하지만, 목록이나 컬렉션 형태가 아닌 일반 형태에서 스크롤되는 화면을 구현하기 위해서는 스크롤 뷰 컨트롤러가 적절합니다.


컨테이너 뷰 컨트롤러

컨테이너 뷰 컨트롤러는 뷰 컨트롤러와 뷰 컨트롤러의 연결 관계를 관리하는 컨트롤러입니다.


iOS는 화면의 제약으로 인해 기본적으로 한 화면에 하나의 뷰 컨트롤러만 표시할 수 있기 때문에, 나머지 뷰 컨트롤러에 접근하는 효율적인 수단을 제공하는 것이 중요합니다.

이를 위해 컨테이너 뷰 컨트롤러는 하나의 뷰 컨트롤러에서 다른 뷰 컨트롤러로 쉽고 자연스럽게 이어지도록 다양한 수단을 제공합니다.

 

컨테이너 뷰 컨트롤러에 해당하는 대표적인 뷰 컨트롤러로는 내비게이션 컨트롤러, 탭 바 컨트롤러, 분할 뷰 컨트롤러, 페이지 뷰 컨트롤러 등이 있습니다.



참고 : 꼼꼼한 재은씨의 스위프트 실전편

잘못된 부분 있으면 댓글 남겨주시면 감사하겠습니다.