본문 바로가기
iOS/설명

[iOS] UIViewController Life Cycle (생명주기)

by Sky Titan 2021. 1. 20.
728x90
 

Apple Developer Documentation

 

developer.apple.com

UIViewController Life Cycle (생명주기)

1. init

  • 새롭게 초기화된 UIViewController객체를 생성한다.

 

2. loadView

  • controller과 관리하는 view를 생성한다.
  • 아직 view가 메모리에 load 되기 전에 호출된다.

 

3. viewDidLoad

  • view가 메모리에 load 된 직후에 호출된다.
  • 모든 life cycle 중 처음 단 한 번만 호출되기 때문에 여러가지 초기화 작업들을 수행한다.

 

4. viewWillAppear

  • view가 화면에 보여지기 직전에 호출된다.
  • 다른 화면에 가려졌다가 다시 나타날 때마다 호출된다.
  • 다른 화면에서 되돌아 올 때마다 하고 싶은 작업, view가 화면에 보여지기 전 준비 작업 등을 수행한다.
  • 처음 호출 시, 아직 subview들의 frame값을 알 수 없는 상태 (layout 전)

 

5. viewDidAppear

  • view과 화면에 보여지고 난 직후에 호출된다.
  • 처음 호출 시, subview들의 frame값을 알 수 있는 상태 (layout 후)

 

6. viewWillDisappear

  • view가 화면에서 사라지기 직전에 호출된다.
  • view 계층에서 제거되기 직전에 호출된다.
  • 현재 ViewController의 데이터들을 저장하는 작업 등을 할 때 사용한다.

 

7. viewDidDisappear

  • view가 화면에서 사라진 직후에 호출된다.
  • view 계층에서 제거된 직후에 호출된다.

 

 

그 외

메서드 설명
viewWillLayoutSubviews - view 내부의 subview들을 화면에 배치하기 직전에 호출된다.
- subview 배치 직전에 할 일들을 수행한다.
viewDidLayoutSubviews - view 내부의 subview들을 화면에 배치한 직후에 호출된다.
viewWillTransition - ViewController의 view의 size가 변경되기 직전에 호출된다.
- view가 rotate될 때도 호출된다.
- view의 size 변경과 관련된 작업들을 수행한다.

 

 

UIViewController와 UIView lifecycle 호출 순서

728x90

댓글