[iOS] ViewController LifeCycle (생명주기)
프론트엔드 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/
4.https://tono18.tistory.com/11