💡 View Life Cycle
💡 단계별 특징
1. loadView
viewController
의 View
를 만드는 역할, 해당 프로퍼티가 nil 일 때 호출됨
view
를 로드하거나 생성, 해당 view
를 viewController
의 view
프로퍼티에 저장
view.backGroudColor = .clear
의 view
outlet
과 action
생성, 연결
2. viewDidLoad
viewController
의 view
가 메모리에 로드된 지후에 호출
viewController
에서 사용할 객체들을 초기화할 때 적합
view
의 bound
가 아직 정의되지 않은 상태
- 메모리워닝이 실행되는 경우 중복 호출될 가능성
3. viewWillAppear
view
가 화면에 나타나기 직전에 호출
( ➡️ viewDidLoad
가 호출된다고 화면에 view
가 보이는 것이 아님)
view
가 스크린에 보이기 바로 전
view
의 bound
는 정의됐지만, 오리엔테이션이 설정되진 않은 상태
- 필드를 숨기거나 보여주기에 적합한 시점
view
가 스크린에 보여질 때마다 호출됨
viewWillLayoutSubviews
- view
의
bound`가 최종적으로 결정되는 최초 시점
subView
의 레이아웃을 업데이트하기 적합한 시점
- 여러 번 중복으로 호출될 수 있다.
- 메인뷰의 서브뷰가 로드되는 경우
- LoadView is only called once: when the view needs to be loaded
- LayoutSubviews, however, is called once per run loop on any view that has had
setNeedsLayout
or setNeedsDisplayInRect
called on it - this includes whenever a subview has been added to the view, scrolling, resizing, etc. 참고
4. viewDidAppear
- view`가 스크린에 보여진 후에 호출
- 애니메이션을 시작하거나, 외부 API를 불러오기에 적합
5. viewWillDisappear
view
가 사라지기 직전에 호출
- ex. 키보드 숨기기
6. viewDidDisappear
view
가 사라진 직후에 호출
- ex. 구독 해제
7. viewDidUnload