-
IOS_Swift_ViewController// UIVIewController 를 알아보자(1)IOS_Swift 2020. 2. 14. 21:04
뷰 컨트롤러란?
우리가 스토리보드에서 만든 View를 관리하기 위해서는 뷰 컨트롤러가 필요합니다.
그렇다면 우리가 만든 View를 관리하기 위해서는 ViiewController가 필요한데 그렇다면 이 뷰 컨트롤러는 어떻게 생겼는지
확인해보겠습니다.
UIViewController
흔히 우리가 사용하는 뷰 컨트롤러는 기본적으로 UIVIewContrller를 상속받고 있습니다.
애플의 공식 레퍼런스를 확인해보겠습니다.
Apple 공식레퍼런스 UIVIewController 애플에 공식문서를 보면 UIViewController는 클래스이며 UIResponder를 상속받고 있습니다,
일단 지금 당장은 UIVIewController만 확인해보겠습니다.
오버뷰를 보면 UIViewController는 클래스이고 모든 ViewControolers 즉 모든 뷰 컨트롤러에 모든 동작을
관리한다고 합니다.
또한 뷰 계층을 관리하는 데 필요한 메서드와 속성을 서브 클래스로 추가해야 한다고 합니다.
즉 뷰를 관리하기 위해서는 UIViewController를 상속받고 관리에 필요한 메서드, 프로퍼티를 추가하라는 말 같습니다.
일단 간단하게 UIViewController가 무엇인지는 알아보았습니다.
그렇다면 UIVIewController를 상속받은 ViewController는 어떤 역할을 하는지 알아보겠습니다.
ViewController의 역할!
이번에도 Aplle의 공식문서를 참고 해보겠습니다.
1, 데이터가 변경될 때마다 업데이트를 해야 한다고 합니다,
2. 뷰와 유저와 상호작용을 합니다.
3. 뷰의 사이즈를 관리하고 인터페이스, 레이아웃을 관리합니다,.
4. 앱에서 다른 뷰 컨트롤러를 포함한 다른 객체와 조정을 한다고 합니다.
간단하게 표현해보자면 뷰를 관리하고 다른 VC와도 서로 상호작용을 한다고 합니다.
그렇다면 위의 내용이 무엇을 말하는 건지 한번 코드로 확인해보겠습니다,
자 처음 우리가 프로젝트를 만들면 위와 같은 뷰 컨트롤러 파일이 존재합니다.
확인해보면 VC(ViewController)는 클래스이며, UIVC를 상속받고 있습니다. 아주아주 당연하지만 위에 레퍼런스에 말한 것과 동일합니다.
그리고 브레이스 안을 보면 viewDidLoad라는 메서드가 보입니다. 이 메서드는 view가 로딩 되어지기전에 호출되는 메서드입니다.
위와 같은 라이프사이클은 2편에서 알아보겠습니다,
이번에는 저 VC 클래스가 어떤 뷰를 관리하는지 확인해보겠습니다.
기본적으로 뷰 컨트롤러는 우리가 스토리보드에서 만든 View를 관리하게 되어있습니다. 그리고 VC 하나당 하나의 View를 담당합니다.
즉 우리가 처음 프로젝트를 만들대 만들어지는 저 VC클래스는 위의 View를 관리하고 있는 것입니다.
그렇다면 어떤 VC클래스가 어떤 View를 관리하는지 확인해보겠습니다,
신독의 저 첫 번째 모양을 클릭해줍니다.
그리고 오른쪽에 인스팩터 영역을 확인해줍니다. 그리고 아이덴티티 인스팩터 즉 3번째 물음표 옆에 있는 칸을 클릭해줍니다.!
그리고 확인해보면 최상단 CustomClass 영역에 Class에 우리가 만든 ViewConroller 가 보입니다.
즉 이 뷰는 처음 만들어진 VC클래스가 관리하고 있다는 것입니다.
이번에는 파일을 더 만들어 테스트해보겠습니다.
두 번째 뷰에는 아무것도 연결이 안 되었는 것을 확인할 수 있습니다,
자 여기에 미리 만든 SecondViewController파일을 연결해보 겠습니다.,
연결을 성공적으로 하면 좌측 편집창과 아이덴티 인스팩터에 정상적으로 SecondVC가 보이는 것을 확인할 수 있습니다.
이제부터 이 뷰는 SecondVC가 관리를 하게 됩니다.
즉 이 뷰가 어떠한 짓을 하기 위해서는 SeconVC에서 관리를 해야 한다는 뜻이지요!
지금까지 간단하게 VC에 관해서 알아보았습니다.
봐주셔서 감사합니다.
참조 //
https://developer.apple.com/documentation/uikit/uiviewcontroller
'IOS_Swift' 카테고리의 다른 글
IOS_Swift_커스텀키보드 만들기(2) (0) 2020.06.14 IOS_Swift_커스텀 키보드 만들기(1) (0) 2020.06.14 IOS_Swift_함수(1) (0) 2020.01.17 IOS_Swift_enum(2) (0) 2020.01.02 IOS_Swift_Enum(1) (0) 2020.01.01