ViewController의 life cycle 이란?
각각의 ViewController이 "보이고, 사라지는 주기"를 말한다.
보통은 생명주기라고 하는데, 이를 잘 사용하면 화면을 구성 또는 재구성할 때 유용하게 쓰인다.
- Appearing 상태 (나타나기 직전)에서 Appeared 상태 (나타남)으로 진행되고, 만약에 View가 종료된다면 Disappearing 상태 (사라지기 직전)에서 Disappeared 상태(사라짐)로 진행된다.
ViewController 상태변화에 따른 메서드 종류
View의 각 상태 변화에 따른 메서드가 존재하고, 이를 이용하여 화면을 구성한다.
- loadView: 뷰를 메모리에 올리는 과정을 말하는데, 뷰를 바꿀 수 있는 시점이다.
각 뷰컨트롤러에는 기본적으로 갖고 있는 뷰가 있는데, 뷰를 코드로 직접 작성한 경우에는 기본 뷰를 바꾸기 위해
loadView 메서드를 재정의할 수 있다.
⭐️ 주의 사항 ⭐️
1. 스토리보드를 통해 뷰를 생성 또는 초기화하는 경우에는 loadView 메서드 재정의 안됨
2. loadView 메서드를 재정의하는 경우에는, 메서드 내부에 super.loadView 사용 안됨
- viewDidLoad: 뷰가 생성되었을 때, 뷰가 메모리에 완전히 올라온 후 한 번만 호출된다.
주로 뷰의 초기화를 진행하기 위해 재정의하여 사용되는데,
뷰가 메모리에서 해제된 후에 다시 메모리에 올라온 경우에만 다시 호출할 수 있다.
뷰가 메모리에 올라올 때 한 번만 실행되기 때문에, 처음 한 번만 실행하면 되는 코드를 작성한다.
- viewWillAppear: 뷰가 실제 화면에 나타나기 직전에 호출된다.
viewDidLoad는 메모리에 올라온 후 한 번만 호출되지만,
viewWillAppear은 메모리와 상관없이 다른 뷰 컨트롤러를 보다가 다시 돌아오는 등의
뷰가 화면에 나타날 때마다 호출된다.
주로, 뷰를 띄우거나 또는 특정 처리가 필요하거나 다른 뷰에서 처리한 작업 결과를 뷰로 업데이트 해야 하는 경우에
화면 갱신의 역할이 필요할 때 사용한다.
- viewDidAppear: 뷰가 실제 화면에 나타난 직후에 호출된다.
뷰의 애니메이션을 시작 또는 타이머를 시작하는 등의 화면이 나타난 후에 필요한 작업을 처리할 때 사용한다. '
- viewWiilDisappear: 뷰가 화면에서 사라지기 직전에 호출된다.
뷰의 애니메이션을 멈추거나, 타이머를 멈추는등의 화면이 사라지기 직전에 마쳐야할 작업들을 처리할 때 사용한다.
- viewDidDisappear: 뷰가 화면에서 사라진 직후 호출된다.
뷰는 화면에서 사라진 것일 뿐, 메모리에서 해제된 것을 의미지하는 않는다.
⭐️ init() 과 viewDidLoad() 차이 ⭐️
- init()
viewController 객체 생성한다.
데이터 관련 초기화할 때 사용한다.
- viewDidLoad()
viewController의 view가 메모리에 로드된 후 호출된다.
뷰 관련 초기화할 때 사용
'UIKit > 기본' 카테고리의 다른 글
네비게이션 바 + 탭 바 적용 (0) | 2024.03.29 |
---|---|
Drawing Cycle (+ Layout Cycle) (0) | 2024.03.28 |
앱의 생명주기 (App Life Cycle) (0) | 2024.03.27 |
컴플리션 핸들러 - 비동기 처리 (함수가 끝난 후 결과 알려줄 때) (0) | 2024.03.19 |
Delegate Pattern (델리게이트 패턴) (1) | 2024.03.18 |