iOS/iOS

[iOS] 생명주기 - ViewController LifeCycle 1

여성일 2023. 8. 17. 15:05
728x90

이번 글에서는 iOS App의 생명주기에 이어서 앱의 구성요소 중에서 가장 핵심인 ViewController의 LifeCycle을 알아보겠다.

 

ViewController 

➡️ UIKit 앱의 인터페이스를 관리하는 앱의 기초가 되는 내부 구조

 

ViewController LifeCycle

ViewController 생명 주기 흐름도 1
ViewController의 생명 주기 흐름도 2

ViewController의 생명 주기 흐름도이다.

 

 

0️⃣ init

storyboard나 code로 ViewController를 생성하는 과정

생명 주기로의 진입 단계이다.

 

1️⃣ loadView

- view를 생성하고 Heap 메모리에 Load하는 단계이다. UIViewController의 View가 생성되는 단계이다.

 ❗️공식문서에 따르면 loadView() 메소드를 직접 호출하면 안 된다.

 

2️⃣ viewDidLoad

- ViewController의 해당 View가 메모리에 Load된 후에 호출되는 메소드

- ViewController 생성 시 자동으로 생성되어있는 메소드

- ViewController 생명 주기에서 딱 한번 호출된다.

➡️ 한 번 호출 될 행위들을 작성한다.

 

3️⃣ viewWillAppear

- ViewController의 View가 뷰 계층에 추가될 예정임을 알리는 메소드

즉, View가 이제 화면에 출력될 것임을 ViewController에 알린다.

화면 전환을 통해 다시 현재의 화면으로 돌아올 때 호출 된다.

➡️ 해당 View가 화면에 표시되기 전에 처리해야 하는 작업을 작성한다.

 

4️⃣ viewDidAppear

- ViewController의 View가 뷰 계층에 추가되었음을 알리는 메소드

즉, View가 화면에 출력 됐음을 알린다.

➡️ 해당 View가 화면에 나타난 즉시 발생해야 하는 작업을 작성한다.

 

5️⃣ viewWillDisappear

- ViewController의 뷰 계층에서 View가 제거될 예정임을 알리는 메소드

➡️ 최종적으로 데이터를 저장하는 작업을 작성한다.

 

6️⃣ viewDidDisappear

- ViewController에게 뷰 계층에서 해당 View가 제거되었음을 알리는 메소드

➡️ 화면이 사라지고 나서 필요 없는 작업을 작성한다.