오늘은 UIViewController의 Life-Cycle에 대해 알아보겠습니다
화면의 생애 정도로 봐도 될 것 같네요.
1. init
1-1. init(coder:)
스토리보드를 통해 ViewController 초기화 작업을 하는 메소드입니다.
1-2. init(nibName:bundle:)
nib를 통해 init(corder:)를 대신하여 초기화 작업을 하는 메소드입니다.
2. loadView
뷰를 실제로 생성해서 메모리에 로드합니다.
스토리보드나 nib(xib)을 사용하지 않는다면 이 메소드를 오버라이드해서 뷰를 만들고 뷰계층을 구성해야 합니다.
3. viewDidLoad
뷰가 메모리에 로드된 이후 시점에 한 번만 호출됩니다.
뷰가 로드는 되었으나 화면에 뷰가 나타나진 않았으므로 빈 화면에서 발생합니다.
그렇기 때문에 일반적으로 리소스를 초기화하거나 초기 화면을 구성하는 용도로 주로 사용합니다.
4. viewWillAppear
뷰가 화면에 나타나기 직전 호출되는 함수입니다
해당 함수는 화면 전환을 통해 다시 돌아왔을 때에도 다시 호출됩니다.
이미지의 순서대로 viewWillDisappear -> viewDidDisappear -> viewWillAppear -> viewDidAppear
5. viewDidAppear
뷰가 화면에 완전히 나타났음을 알립니다
6. viewWillDisappear
뷰가 사라지기 직전 호출되는 함수입니다.
7. viewDidDisappear
뷰가 화면에서 완전히 사라졌을 때 호출되는 함수입니다.