본문 바로가기
iOS/iOS

[iOS 기초 - 01] 뷰 컨트롤러(View Controller)

by 원만사 2021. 10. 14.
반응형

 

뷰 컨트롤러(View Controller)

- 하위에 있는 콘텐츠를 관리하고, 보여주거나 숨기는 등의 구성을 조정하는 역할

- 내부적으로 뷰를 포함하고 있으며, 뷰에 대한 관리를 주로 한다.

- 대부분의 뷰 컨트롤러는 화면 전환이 발생할 때 다른 뷰 컨트롤러와 서로 통신하고 조정하는 일을 수행한다.

 


그림 1-1. 간단한 화면 인터페이스 구조

 위의 그림처럼 화면을 구성하는 데에는 세 가지 주요 객체가 사용된다.

  • UIScreen : 기기에 연결되는 물리적인 화면을 정의하는 객체
  • UIWindow : 화면 그리기 지원 도구를 제공하는 객체
  • UIView : 그리기를 수행할 객체 세트

 수많은 UIView 객체가 모인 Window는 이들을 화면으로 구성하여 Screen 객체에 보내고, Screen 객체는 이를 물리적인 기기에 표시한다. 이 객체들은 모두 UIKit 프레임워크에 정의된 클래스이며 아래의 그림과 같이 UIKit 프레임워크 내에 정의되어 있다. 

그림 1-2. UIKit 프레임워크와 화면 구성요소의 관계

 위 그림에서는 뷰 컨트롤러가 빠져 있다. 사실 뷰 컨트롤러는 화면을 그려내는 데에 반드시 필요한 요소는 아니다. MVC 패턴을 사용하는데 있어서 사용되는 컨트롤러 객체라고 볼 수 있다. 뷰 컨트롤러는 뷰와 리소스를 관리하는 역할을 해야 하고 각 역할에 대한 내용은 모두 UIViewController 클래스에 정의되어 있다. 따라서 모든 뷰 컨트롤러는 UIViewController 클래스를 상속받아야 한다.

그림 1-3. UIKit 프레임워크에서 화면 구성요소의 관계 속성

 그림 1-3은 그림 1-1 구조에서 MVC 패턴에 따라 컨트롤러의 역할을 보강한 아키텍처를 보여준다. 그림에서 보듯이, 화면을 구성할 때 Window에 뷰 객체를 바로 할당해서는 안 된다. 대신 Window에 뷰 컨트롤러를 할당해서 뷰 컨트롤러가 자동으로 자신에게 첨부된 뷰들을 화면에 추가하도록 해야 한다.

 

 

참고 : 

 

꼼꼼한 재은 씨의 스위프트 기본편 - 교보문고

iOS 앱 개발을 위한 Swift 바이블 | 이 책에 해당하는 기본편에서는 스위프트를 이용한 iOS 앱 개발 과정을 설명합니다. 만약 스위프트 언어에 대해 충분히 이해하지 못했다면 먼저 문법편을 학습하

www.kyobobook.co.kr

 

반응형

댓글