[iOS] 뷰의 상태변화 / ViewController Lifecycle
개발🧑‍💻/📱 iOS

[iOS] 뷰의 상태변화 / ViewController Lifecycle

⚠️ 해당 글에는 정확하지 않은 정보가 들어있을 수 있습니다. 부정확한 정보는 댓글로 알려주시면 감사하겠습니다 😂

BoostCourse iOS 앱 프로그래밍 강의를 공부한 내용을 토대로 작성되었습니다.

 

 우리가 사용하는 앱은, 많은 view로 구성이 되어있습니다. view는 화면에 정보를 나타내고, 또한 사용자의 입력을 받기도 하기 때문입니다. 오늘은 view 의 상태변화, ViewController의 Lifecycle에 대해 알아봅니다.

 

ViewController Lifecycle로 구글하면 나오는 대표적인 이미지

 

애플 개발자 문서의 이미지

 위 사진은 ViewController LIfecycle이라는 키워드로 구글하면 볼 수 있는 이미지들입니다. iOS 개발을 공부하면서 xcode를 다뤄보셨다면, 이중에서 조금 익숙한 키워드가 있을텐데요... 바로 이녀석입니다.

 그렇습니다. 바로 xcode에서 새 프로젝트를 만들고 ViewController.swift에 항상 들어있던 그 녀석!!

 

 

그렇다면 이 메소드는 무슨 역할을 하는지 알아보겠습니다. 공식 문서로 가보면, 

컨트롤러의 뷰가 메모리에 로드된 이후 호출된다고 소개가 되어있네요! 

 

한번 직접 확인해보겠습니다

일단 함수가 호출되면 로그를 남기도록 한 뒤,, 실행해보면

 이처럼 실행이 되고, 로그도 잘 남는 것을 볼 수 있습니다,,, 위의 이미지에서 viewDidLoad() 뿐 아니라 다른 메서드들도 있는 것을 볼 수 있는데, 다음과 같습니다. 메서드 이름만 읽고도, 대략 무슨 역할을 하는 메서드인지 알수 있겠죠? 

 

- viewDidLoad() : 뷰가 로드되었다 -> 뷰 계층이 메모리에 로드된 직후 호출되는 메서드

- viewWillAppear() : 뷰가 나타날 것이다 -> 뷰가 뷰 계층에 추가되고, 화면이 표시되기 직전에 호출되는 메서드 

- viewDidAppear() : 뷰가 나타났다 -> 뷰가 뷰 계층에 추가되어 화면이 표시되면 호출되는 메서드

- viewWillDisappear() : 뷰가 사라질 것이다 -> 뷰가 뷰 계층에서 사라지기 직전에 호출되는 메서드

- viewDidDisappear() : 뷰가 사라졌다 -> 뷰가 뷰 계층에서 사라진 후 호출되는 메서드

 

 이번에는 ,뷰컨트롤러를 하나 더 만들어서 네비게이션 컨트롤러로 뷰컨트롤러의 이동과정을 따라가봅시다 👣

 실행한 화면은 다음과 같습니다.

 

로그를 보면, 위의 이미지에서 봤던 순서대로 (viewDidLoad() -> viewWillAppear() -> viewDidAppear() -> viewWillDisappear() -> viewDidDisappear()) 작동하는것을 볼 수 있습니다!! 👍

 

 

References

애플 개발자 문서

 

Apple Developer Documentation

 

developer.apple.com

 

 

부스트코스 iOS 앱 프로그래밍

 

iOS 앱 프로그래밍

부스트코스 무료 강의

www.boostcourse.org

 

'개발🧑‍💻 > 📱 iOS' 카테고리의 다른 글

[iOS] Frame vs Bounds.  (0) 2021.12.16
[iOS] 오토레이아웃 (Auto Layout) 을 알아보자!  (0) 2021.12.11