대부분의 어플리케이션은 단일 뷰보다는 여러 뷰가 존재하며, 그에 따른 뷰 컨트롤러도 다수개 있다.
그렇게 복잡한 앱일수록 사용자와의 상호작용이나, 화면이 load/unload 되는 게 많아지므로
뷰가 보여지는 상황이 변화하는 시점에 잘 맞춰 UI의 변화나 데이터 변화를 잘 다룰 수 있어야 한다.
뷰가 보여지는 상황은 크게 4가지로 분류할 수 있다.
UIViewController
는 뷰가 보여진 상태에 따라 호출하는 메소드가 다르다.
그럼 각각의 시점에 어떤 메소드가 호출되는지 알아보자.
viewDidLoad()
viewWillAppear()
viewDidAppear()
viewWillDisappear()
viewController의 content view가 뷰 계층에 제거되기 직전(화면에서 사라지기 시작하면서)에 호출된다.(다음 뷰 컨트롤러의 전환이 발생하고 원본 뷰 컨트롤러가 화면에서 제거되기 전)
일반적으로 이 시점에서 수행해야 하는 작업이 거의 없다.
뷰가 생성된 뒤 발생한 변화를 이전 상태로 되돌리기 좋은 시점.
viewDidDisappear()
viewController의 content view가 뷰 계층에 제거된 직후(화면에서 완전히 사라지고 난 후)에 호출된다.
뷰를 숨기는 것과 관련된 추가적인 작업을 하기 좋은 시점이다.(뷰 컨트롤러가 화면에 없는 동안 실행해서는 안되는 작업을 중지하려면 이 메소드를 이용한다.)
시간이 오래 걸리는 작업은 하지 않는 것이 좋다.