iOS) 그래서 ViewController 란 뭘까
[iOS] 인터페이스의 표현 구조(윈도우, 뷰, 뷰컨트롤러에 대해)
윈도우와 뷰
- 모바일은 데스크톱과 달리 디바이스 스크린에 꽉 들어차는 하나의 화면을 표시할 수 있으며, 다른 프로그램이 실행되면, 기존의 화면은 내려가고 그 자신을 새로운 화면이 대신 채우게 된다.
- Android는 멀티 윈도우가 되지만, iOS 는 한 화면에 두개의 프로그램을 동시에 사용하는것이 불가능하다.
윈도우와 뷰의 차이
-
윈도우 : iOS에서 디바이스 스크린을 빈틈없이 채우기 위한 객체로, 항상 유저 인터페이스 표현계층의 최상위에 위치한다.
- 뷰의 일종이지만, 직접 컨텐츠를 가지지는 않고 콘텐츠를 가진 뷰를 내부에 배치하여 화면에 출력하는 역할만을 수행한다.
- 만약 화면이 전환되어도 윈도우 객체가 전환되는것이 아니라 내부에 배치된 뷰의 콘텐츠만 변경되는 것이다.
-
뷰 : 콘텐츠를 담아 이것을 스크린에 표시하고 사용자의 입력에 반응을 한다.
- 윈도우의 일부를 자신의 영역으로 정의하고, 여기에 필요한 콘텐츠를 채워 넣어 스크린에 나타나는 동시에, 윈도우로부터 전달된 사용자의 입력에 반응하여 그에 맞는 결과를 처리한다.
마치 앵귤러로 치자면, 윈도우는 Index.html 을 의미하고, 루트뷰는 루트 컴포넌트, 각 뷰들은 컴포넌트들을 의미하는것과 비슷하다.
iOS에서 실행되는 어플리케이션은 최소한 하나 이상의 윈도우와 뷰를 가지고 있다.