728x90
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
'iOS > 설명' 카테고리의 다른 글
[iOS] frame과 bounds의 차이 (0) | 2021.01.21 |
---|---|
[iOS] UIView의 clipToBounds (0) | 2021.01.21 |
[iOS] UILabel의 text를 top-left 정렬하기 (0) | 2021.01.14 |
[iOS] UICollectionView로 Carousel Banner만들기 (feat. Android ViewPager) (0) | 2021.01.09 |
[iOS] 안전 영역 (Safe Area) (0) | 2020.12.21 |
댓글