View Life Cycle
앱은 하나 이상의 뷰로 구성되어 있으며, 각각의 뷰들은 life cycle을 가지고 있다.
View Controller의 생명주기는 scene 전환과 복귀와 밀접한 연관을 가지고 있다. 화면 전환 시, view controller 인스턴스 생성 및 소멸이 발생하기 때문이다.
앱을 처음으로 실행하거나 다른 scene으로 전환할 때, 인스턴스 새로 생성, 메모리 로드하고 이전 화면으로 복귀하면 생성된 인스턴스는 소멸되어 있다. 따라서 view의 life cycle을 고려해서 로직을 만들고, 구성해야 한다.
view의 상태 4가지로 분류된다.
- Appearing
View Controller가 스크린에 등장하기 시작한 순간부터 등장을 완료하기 직전까지의 상태
- Appeared
View Controller가 스크린 전체에 완전히 등장한 상태
- Disappearing
View Controller가 스크린에서 가려지기 시작해서 완전히 가려지기 직전까지의 상태,
또는 퇴장하기 시작해서 완전히 퇴장하기 직전까지의 상태.
- Disappeared
View Controller가 스크린에서 완전히 가려졌거나 혹은 퇴장한 상태
view의 가시성이 변화될 때, view controller는 자동으로 아래의 메소드를 호출한다.
- viewDidLoad: view controller가 생성될 때, 가장 먼저 실행
특별한 경우가 아니라면, 딱 한번만 실행되기 때문에 초기화할 때 사용!
- viewWillAppear: view가 생성되기 전에 항상 실행
뷰 나타나기 전에 실행해야 하는 작업시 이 메소드 사용
- viewDidAppear: view 생성되고 난 뒤에 실행
데이터를 받아서 화면에 뿌려주거나 애니메이션 작업 등을 이 메소드에서 사용
- viewWillDisappear: 뷰가 사라지기 직전에 실행
- viewDidDisappear: 뷰가 사라지고 난 뒤에 실행
순환적으로 발생하기 때문에 화면 전환에 따라 발생해야 하는 로직을 적절한 곳에서 실행시키기!
'iOS' 카테고리의 다른 글
[iOS/UIKit] 코드베이스로 커스텀 객체 만들기! (Custom UIView) (0) | 2023.03.17 |
---|---|
[iOS/UIKit] 화면 전환에 대해 알아보자! (0) | 2023.03.14 |
[iOS] App Life Cycle을 알아보자! (0) | 2023.02.21 |
[iOS] AutoLayout 정복하기 - Constraints (0) | 2023.02.13 |
[iOS/SwiftUI] MVVM에 대해 알아보자! (0) | 2023.02.09 |