The Role of View Controller

delma·2020년 2월 7일
2

iOS

목록 보기
1/16

애플 개발자 문서 를 읽고 정리한 글입니다. 오역이나 잘못된 정보가 있을 수 있습니다.

UIViewController의 역할은 View를 관리하고, 이팬트 핸들링, 다른 뷰 컨트롤러로 이동하는 일, 앱의 다른 부분과 협동 하는 등의 일을 한다.

View Controller에는 크게 2가지 타입이 있다

Content View Controller

앱 컨텐츠의 개별적인 요소를 관리하는 컨트롤러로, 사용자가 만드는 주요 유형

Container View Controller

다른 뷰 컨트롤러(자식 뷰 컨트롤러)에 대한 정보를 모으고, 해당 뷰 컨트롤러의 내용을 다르게 표시하는 방식을 제공함. (뷰 컨트롤러 내에 뷰 컨트롤러가 있는 개념.(아래 그림 참고.) 대표적인 Container View Controller로는 Navigation Controller, Tabbar Controller가 있음)

스크린샷 2020-02-07 오후 3.37.43.png

View Management

View Controller의 가장 중요한 역할은 View 계층을 관리하는 것.

모든 View Controller는 VC의 content안에 Single root view를 가지고 있음. (content안에 가 window를 말하는건가?)

Content View Controller는 모든 뷰를 자체적으로 관리하고,

Container View Controller는 자체 뷰와 하나 이상의 자식 VC의 루트뷰를 관리한다.

스크린샷 2020-02-07 오후 3.32.34.png

Data Marshaling

VC는 View와 앱 데이터 사이의 중개자 역할을 한다. VC에서 데이터를 관리하는 방법 중 하나는 UIDocument객체를 사용하는 것.

UIDocument 객체는 영구 저장소에 데이터를 읽고 쓸 수 있는 컨트롤러 객체.

User Interaction

VC는 응답자 객체(responder object)로 View가 자체 터치 이벤트 처리를 하고 관련 delegate나 target action 메소드에 결과를 보고하는 식.

VC의 대부분의 이벤트는 delegate method나 action method를 사용하여 처리됨

(delegate pattern을 사용하는 이유와도 관련이 있을 것 같다.)

Resource Management

UIViewController 클래스는 뷰 관리의 대부분을 자동으로 처리한다. 예를 들어, UIKit은 더이상 필요 없는 뷰 관련 리소스를 자동으로 해제하고, 사용 가능한 여유 메모리가 부족하면 UIKit은 더 이상 필요 없는 리소스를 확보하도록 앱에 요청한다.

VC의 didRecieveMemoryWarning 메소드를 호출하는데, 더이상 필요 없거나 나중에 쉽게 만들 수 있는 객체에 대한 참조를 제거하기 위해 사용한다.

profile
🌐Code makes world better

1개의 댓글

comment-user-thumbnail
2020년 2월 27일

banner color #a2b784

답글 달기