View Controller의 생명주기

유민우·2024년 7월 1일
1

뷰 컨트롤 생명주기

뷰 컨트롤의 생명주기란: 언제태어나고 언제 죽는지에 대한 주기가 아닌,
말 그대로 보여줬다가 사라지는 주기. 보여줬다 -> 사라졌다.

직관적으로 보면

  1. viewDidLoad : did -> ‘뷰가 로드되었다.’
  2. viewWillAppear: will appear(나타날 것이다) -> ‘뷰가 나타날 것이다.’
  3. viewDidAppear: -> ‘뷰가 나타났다.’
  4. viewWillDisappear: will disappear(사라질 것이다) -> ‘뷰가 사라질 것이다’
  5. viewDidDisappear: -> ‘뷰가 사라졌다.’

  1. viewDidLoad 부터 알아보자
    애플 공식문서에 따르면
    "뷰의 컨트롤러가 메모리에 로드되고 난 후에 호출됩니다."
    라고 한다.
    이 viewDidLoad 메소드는 뷰의 로딩이 완료되었을 때 시스템에 의해 자동으로 호출되기 때문에 일반적으로 리소스를 초기화 하거나 초기화면을 구성하는 용도로 자주 사용한다.
    화면이 처음 만들어질 때 한번만 실행되므로, 처음 한 번만 실행해야하는 초기화 코드가 있을 경우 이 메소드 내부에 작성하면 된다.

다음으로 view의 Load가 된 후,

  1. viewWillAppear은 뷰가 이제 나타날거라는 신호를 컨트롤러에 알리는 역활이다. 즉 뷰가 나타나기 직전에 호출된다고 볼 수 있다.
  1. viewDidAppear은 뷰가 나타났다는 것을 컨트롤러에게 알리는 역활을 한다. 또한 화면에 적용될 에니메이션을 그려준다.
    이 viewDidAppear은 뷰가 화면에 나타난 직후에 실행되는데 이것을 제외하고는 viewDidAppear 와 viewWillAppear는 거의 비슷하다.
  1. viewWillDisappear는 뷰가 사라지기 직전에 호출되는 함수인데, 뷰가 삭제되려고 할 때 뷰컨트롤러에 통지한다.
  1. 마지막으로 viewDidDisappear가 호출되면 뷰컨트롤러가 뷰가 제거되었음을 알려준다.

맨 위에있는 Loadview는 컨트롤러가 뷰를 만드는 역활을 한다.
바로 Loadview가 뷰를 만들고, 메모리에 올린 후 viewDidLoad가 호출된다고 할 수 있다.

profile
유민우

0개의 댓글