iOS/🍎 Documentation

The Role of View Controllers (1) - Overview - View Controller Programming Guide for iOS

woozzang 2021. 1. 14. 00:41
출처: Appple Develover Documentation [ View Controller Programming Guide for iOS ]

 

View controllers는 앱 내부구조의 기본 요소입니다.

대부분의 앱은 여러 개의 View controller를 가지고 있습니다.

각각의 View controller는 앱 내 존재하는 UI 일정 부분씩을 담당하고 interactions ( 이벤트 처리 ) 들을 담당합니다.

또한 다른 UI로의 transition을 용이하게 합니다.

 

즉, View controller는 앱에서 아주 중요한 역할을 맡습니다.

UIKit이 제공하는 UIViewController 클래스는 View들을 관리하고 , 이벤트를 처리하고, 다른 View controller로 이동하고 (transition)  앱 내의 다른 부분들과 협력 (coordinate) 할 수 있게 기본적으로 메서드와 속성을 제공합니다.

 

보통 UIViewController를 서브 클래싱 하여 개발자가 자신이 개발하는 앱 내에서 필요한 커스텀 코드( 동작을 구현하는 method, 필요한 정보를 담을 property)를 추가하여 완성합니다.

 

View contorller에는 2가지 타입이 있습니다.

 

1. Content view controllers (이하 Content VC)

하나의 루트 뷰를 가지고, 그 안에 서브 뷰들이 존재한다.

 

2. Container view controllers (이하 Container VC)

그 자체로 무엇을 나타내지 않는다. 대신 Child view controllers 들을 가지고 있고 그것들의 정보로 present 한다.

 

대부분의 앱들은 이것들의 조합으로 이루어져 있습니다.

예를 들어 Container VC의  Child VC는 보통 Content VC들로 이루어져 있는 형태입니다.

 


 

View Management

 

모든 VC 는 단 하나의 root view를 가지고 있습니다.

이 root view는  해당 VC의 모든 콘텐츠를 포함 (encloses) 하고 있습니다.

 

이 root view 아래 계층에 view들을 추가해서 화면에 보여줄 콘텐츠를 띄웁니다.

 

View controller와  그것에 속한 view들의 관계

보통 outlet을 사용해서 VC 계층에 존재하는 View들에 접근합니다.

 

Content VC는 그 계층에 포함된 모든 View 들을 직접 관리합니다.

 

Container VC는 자체 뷰와 하나 혹은 여럿이 될 수 있는 Child view controller의 root view 만 관리합니다.

Container VC는 child의 콘텐츠를 관리하지 않습니다. Child의 root view 만을 관리하며, Container 디자인에 맞도록 크기 조절과 위치 조정을 합니다.

 

예로 Split View Controller를 들 수 있습니다.

이것은 Container View로, 자체의 뷰인 Spit View Container View를 관리하고, 이것의 디자인에 맞게 Child VC 들의 사이즈 및 위치를 조절하고 있습니다.

 

Container view controller의 예시

 

 

 

끝!


다음 글: The Role of View Controllers (2) - Overview - View Controller Programming Guide for iOS

 

The Role of View Controllers (2) - Overview - View Controller Programming Guide for iOS

출처 : Apple Developer Documentation Data Marshaling marshal = organize View controllers (이하 VC)는 그 계층에 있는 view 들과 앱에서 관리하는 데이터들의 중계자 (intermediary)입니다. UIViewController..

woozzang.tistory.com