뷰 컨트롤의 생명주기란: 언제태어나고 언제 죽는지에 대한 주기가 아닌,
말 그대로 보여줬다가 사라지는 주기. 보여줬다 -> 사라졌다.
직관적으로 보면
- viewDidLoad 부터 알아보자
애플 공식문서에 따르면
"뷰의 컨트롤러가 메모리에 로드되고 난 후에 호출됩니다."
라고 한다.
이 viewDidLoad 메소드는 뷰의 로딩이 완료되었을 때 시스템에 의해 자동으로 호출되기 때문에 일반적으로 리소스를 초기화 하거나 초기화면을 구성하는 용도로 자주 사용한다.
화면이 처음 만들어질 때 한번만 실행되므로, 처음 한 번만 실행해야하는 초기화 코드가 있을 경우 이 메소드 내부에 작성하면 된다.
다음으로 view의 Load가 된 후,
- viewWillAppear은 뷰가 이제 나타날거라는 신호를 컨트롤러에 알리는 역활이다. 즉 뷰가 나타나기 직전에 호출된다고 볼 수 있다.
- viewDidAppear은 뷰가 나타났다는 것을 컨트롤러에게 알리는 역활을 한다. 또한 화면에 적용될 에니메이션을 그려준다.
이 viewDidAppear은 뷰가 화면에 나타난 직후에 실행되는데 이것을 제외하고는 viewDidAppear 와 viewWillAppear는 거의 비슷하다.
- viewWillDisappear는 뷰가 사라지기 직전에 호출되는 함수인데, 뷰가 삭제되려고 할 때 뷰컨트롤러에 통지한다.
- 마지막으로 viewDidDisappear가 호출되면 뷰컨트롤러가 뷰가 제거되었음을 알려준다.
맨 위에있는 Loadview는 컨트롤러가 뷰를 만드는 역활을 한다.
바로 Loadview가 뷰를 만들고, 메모리에 올린 후 viewDidLoad가 호출된다고 할 수 있다.