iOS/iOS Swift 개발 일기

TIL 7.2

Developer-Michelle 2022. 7. 2. 11:29

뷰 컨트롤러 - 2가지로 나눔.

1) 콘텐츠 뷰 컨트롤러 2) 컨테이너 뷰 컨트롤러

 

1) 콘텐츠 뷰 컨트롤러

이미지, 텍스트 또는 버튼이나 입력폼 등 애플리케이션의 화면에 표현할 콘텐츠를 관리하는 컨트롤러.

화면 전체 사이즈의 루트 뷰를 내장. 이 뷰 위에 각종 콘텐츠를 얹어 화면에 출력.

 

콘텐츠 뷰 컨트롤러를 정의하는 기본 클래스 : UIViewController.

주된임무: 뷰를 관리, 이벤트를 핸들링, 화면 전환.

 

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

ex) 테이블 뷰 컨트롤러, 컬렉션 뷰 컨트롤러, 스크롤 뷰 컨트롤러, 일반 뷰 컨트롤러(UIViewController) 들 중 하나를 선택하여 상속.(서브 클래싱)

 

2) 컨테이너 뷰 컨트롤러

뷰 컨트롤러와 뷰 컨트롤러의 연결관계를 관리하는 컨트롤러.

ex)내비게이션 컨트롤러, 탭 바 컨트롤러, 분할 뷰 컨트롤러(Split view controller), 페이지 뷰 컨트롤러 등.

각각의 컨트롤러는 저마다 자식 컨트롤러를 연결하는 특별한 방식을 제공.

 

ex)내비게이션을 이용하여 다음 화면을 단계적으로 접근하는 방식, 탭을 이용하여 병렬적으로 접근하는 방식, 메인화면과 디테일 화면으로 나누어 접근하는 방식 등.

 

루트 뷰 컨트롤러(컨테이너 뷰 컨트롤러와 직접 연결된 자식 뷰 컨트롤러) / 자식 뷰 컨트롤러(컨테이너 뷰 컨트롤러의 제어 하에 있는 뷰 컨트롤러)

 

 

루트 뷰의 제어

루트뷰는 서브뷰를 추가할 수 있는 최상위 컨테이너.

루트뷰가 없는 상태에서 서브 뷰만 추가할 수는 없다.

반드시 뷰 컨트롤러 하위에 루트뷰를 추가한 다음, 여기에 서브 뷰를 추가해야 함.

 

이때 루트뷰는 존재하지 않으므로, 일반 뷰 혹은 테이블뷰나 컬렉션 뷰 등 원하는 뷰를 선택하여 추가하면 됨.

 

 

 

 

출처: 꼼꼼한 재은씨의 swift 실전편

'iOS > iOS Swift 개발 일기' 카테고리의 다른 글

iOS swift 개발자 문서 열기  (0) 2022.07.07
TIL 7.3  (0) 2022.07.03
TIL 6.30  (0) 2022.06.30
TIL 6.29 정리  (0) 2022.06.29
iOS swift 실습 중 기능별 찾아볼 수 있게 정리  (0) 2022.06.11