- 본 포스팅은 패스트캠퍼스 강의를 참고하여 정리한 내용을 담고 있습니다.
UIView는 공식 문서에 따르면 화면의 직사각형 영역에 대한 내용을 관리하는 개체
이다.
쉽게 말해, 화면을 구성하는 UI의 기본 클래스이다.
UIView는 아래와 같이 여러 컴포넌트의 부모 클래스로 존재한다.
ViewController은 View를 관리하는 Controller이다.
앱의 근간을 이루는 컨트롤러로, 데이터와 외형을 연결하여 하나의 동적인 화면을 만들어내며, 모든 앱은 최소한 하나 이상의 ViewController를 가지고 있다.
한마디로 사용자가 화면을 보는 것에 대해 관리 기능을 제공한다.
ViewController가 하는 일은 다음과 같다.
즉, 화면 하나를 관리하는 단위로 생각하면 이해하기가 수월하다.
Xcode로 앱 프로젝트를 생성하여 바로 빌드하면 위와 같이 시뮬레이터에 빈 화면만 나타나는데, 바로 UIViewController이다.
이때, UIViewController를 생성할 때마다 화면 전체를 포괄하는 UIView가 자동으로 생성된다.
때문에 StroyBoard 상에서 여러 컴포넌트를 위에 올려 아래와 같이 UI를 구성할 수 있다.
ViewController에 해당하는 UIKit 프레임워크의 클래스는 UIViewController이며, 사용하기 위해서는 아래와 같이 해당 클래스를 상속 받아야 한다.
class ViewController: UIViewController
우리는 앱을 만들 때 단일 스크린 위에서 여러 개의 ViewController로 화면 전환이 가능한 앱을 만든다.
앱이 복잡할수록 Controller를 잘 관리해야 하는데, 알맞은 타이밍에 내가 원하는 코드를 작성하는 것이 가장 중요하다.
이를 위해서는 생명 주기
를 이해해야 한다.
UIViewController의 객체에는 View 객체를 관리하는 메서드들이 구성되어 있다.
이 메서드들은 각자 자신이 불려져야 하는 타이밍에 iOS 시스템에 의해서 호출된다.
UIViewController 하위 클래스를 생성할 때, UIViewController에 정의된 메서드들을 오버라이드하여 상황에 맞게 적절한 로직을 구현할 수 있다.
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
}