Window, View 그리고 View Controller

ellyheetov·2021년 2월 11일
2
post-thumbnail

Application은 하나의 window와 여러개의 view들로 이루어져 있다. window, view, controller에 대해서 알아보려고 한다.

Window란?

window는 여러개의 보이지 않은 view들까지도 포함하는 container역할을 한다. 한마디로, 최상위 containter 이다.

Screen Shot 2021-02-11 at 12 57 55 PM

window에는 여러개의 view가 있다. 이 여러개의 view들을 이용하여 화면을 전환하게 된다.

현재 보이는 view와 보이지 않는 view들이 있다. view들은 화면에서 보여지기도 사라지기도 하지만 window는 최상위에 존재하므로 앱을 종료시에만 사라지게 된다.

View란?

view는 User에게 text, image 등등 사용자의 contents들을 보여준다.

  • 뷰는 윈도우의 일부를 자신의 영역으로 정의하고, 여기에 필요한 콘텐츠를 채워 넣어 스크린에 나타낸다.

  • 동시에, 윈도우로부터 전달된 사용자의 입력에 반응하여 그에 맞는 결과를 처리한다.

  • 다양한 뷰들이 중첩될 수도 있다. 계층 구조를 이루는데, parent view는 superview, child view는 subview라고 한다. 아래의 이미지는 아이폰 시계 어플의 중첩된 View를 보여준다.

Window위에 Tab bar view가 얹어지고, 그 위에 Navigation view가 얹어져 Assembled views를 볼수 있게 되는 것이다.

View Controller란?

여러개의 View를 효과적으로 전환하기 위해 존재하는 것이 controller이다. view를 보여주고, 사라지게 하는 것이 controller의 역할이다.

조금 더 고급스럽게 말하자면, View Controller는 View와 Window 중간을 중개한다.

View Controller의 역할

  • 뷰를 관리한다.
    - 하나의 View Controller는 하나의 root view를 관리한다.
    Screen Shot 2021-02-10 at 11 25 36 AM(controller를 생성하자마자 자동으로 생긴 view)
    • view는 계층적 구조를 가지고 있으므로 subview를 가질 수 있다.
      Screen Shot 2021-02-11 at 11 59 04 AM
      Screen Shot 2021-02-10 at 11 28 36 AM
  • 화면과 데이터 사이의 상호작용을 관리한다.
    - 사용자로부터 이벤트를 받아 내부 로직을 실행하고, 그 결과로 얻어진 데이터를 콘텐츠로 만들어 화면에 표현한다.

View Controller의 종류

하나하나 알아가 보자.

Content View Controllers

  • UIViewController

  • UITableViewController

  • UICollectionViewController

Container View Controllers

  • UISplitViewController

  • UINavigationController

  • UINavigationBar

  • UINavigationItem

  • UITabBarController

  • UITabBar

  • UITabBarItem

  • UIPageViewController

정리

Window : 콘텐츠를 가진 뷰를 내부에 배치하여 화면에 출력하는 역할(view에 일종, but 직접 콘텐츠를 가지지 않는다.)
View : 콘텐츠를 담아 이를 스크린 상에 표시하고, 사용자에 입력에 반응한다.
View controller : 윈도우와 뷰 사이를 중계한다.
- 터치 이벤트를 윈도우로부터 전달받아 처리하는 역할
- 뷰의 계층을 관리하여 윈도우에 전달

추가 정리하였습니다. 👉🏻여기👈🏻

profile
 iOS Developer 좋아하는 것만 해도 부족한 시간

0개의 댓글