티스토리 뷰

728x90

프론트엔드 iOS 개발자라면 반드시 알아야할 LifeCycle (생명주기) 에 대해 공부해 보겠습니다.


ViewController LifeCycle

ViewController의 LifeCycle을 알아볼건데요.

각각의 ViewController 마다 생명주기를 가지고 있는데,

여기서 생명주기란 언제 생성되고, 언제 없어지는지를 말합니다.

 

먼저 생명주기가 어떻게 되는지 아래 그림으로 보시죠.

loadView:

화면에 띄어질 View를 만드는 메소드입니다.

코드로직접 view를 만드는 경우를 제외 하곤 override하지 않는것이 좋습니다. (stroyboard, .nib파일)

Outlet들과 Action들이 이 메소드에서 생성되고 연결 됩니다.

 

viewDidLoad:

ViewController가 메모리에 로드되고 난 후 한번만 호출 됩니다.

주로, view의 초기화 작업을 담당합니다.

 

 

viewWillAppear:

해당 viewController에 접근할때 보여지기 직전과 애니메이션이 구성되기 전에 매번 호출됩니다.

viewDidLoad, viewWillAppear 차이점

예)
1번 ViewController -> 2번 ViewController -> 1번 ViewController 이런식으로 돌아오게 되면 

가장 처음 앱실행시viewDidLoad, viewWillAppear 둘다 호출되지만 
2번VC 에서 돌아올때viewWillAppear만 호출됩니다. (제일 하단에 사진참고)

 

 

viewDidAppear:

view가 나타난 후 호출되는 메소드 입니다.

주로, 화면에 애니메이션을 적용할 때 사용합니다.

 

 

viewWillDisappear:

ViewContoller가 사라지기 직전에 호출되는 메소드 입니다.

View 생성후 진행했던 작업들을 되돌리는 작업을 할때 사용합니다.

 

viewDidDisappear:

ViewController가 화면에서 사라지고 난 후 호출되는 메소드

 

 


상황에 따라 log 확인해보기

 

위에 정리해놓은걸 확인해보면서 생명주기를 다시 파악해보세요!

 

1VC = FirstViewController

2VC = SecondViewController

 

앱 실행 -> 1VC

 

1VC -> 2VC

 

2VC -> 1VC

 

 

 

 


오늘은 ViewController의 기본적인 LifeCycle에 관해 정리 해봤는데요. 

 

좀더 깊게 파보자면

ViewWillAppear < --- > ViewDidAppear 사이에 생명주기가 더 있습니다.

 

아래 사진처럼요.

 

이 부분은 다음 LifeCycle 심화 버전으로 블로깅을 해보겠습니다.

 


참고

1.  https://developer.apple.com/documentation/uikit/uiviewcontroller/1621454-loadview

2. https://baked-corn.tistory.com/

3. made_with_song

4.https://tono18.tistory.com/11

 

728x90

'iOS' 카테고리의 다른 글

[Swift] 에러처리 (Error Handling)  (0) 2022.06.01
[iOS] 앱 업데이트  (0) 2022.05.29
[iOS] Reactive Programming 이란?  (0) 2022.05.25
[Swift] 옵셔널 체이닝 (Optional Chaining)  (0) 2022.05.22
[iOS] TableView, CollectionView 차이점  (0) 2022.05.20