⚠️ 해당 글에는 정확하지 않은 정보가 들어있을 수 있습니다. 부정확한 정보는 댓글로 알려주시면 감사하겠습니다 😂
BoostCourse iOS 앱 프로그래밍 강의를 공부한 내용을 토대로 작성되었습니다.
우리가 사용하는 앱은, 많은 view로 구성이 되어있습니다. view는 화면에 정보를 나타내고, 또한 사용자의 입력을 받기도 하기 때문입니다. 오늘은 view 의 상태변화, ViewController의 Lifecycle에 대해 알아봅니다.
위 사진은 ViewController LIfecycle이라는 키워드로 구글하면 볼 수 있는 이미지들입니다. iOS 개발을 공부하면서 xcode를 다뤄보셨다면, 이중에서 조금 익숙한 키워드가 있을텐데요... 바로 이녀석입니다.
그렇습니다. 바로 xcode에서 새 프로젝트를 만들고 ViewController.swift에 항상 들어있던 그 녀석!!
그렇다면 이 메소드는 무슨 역할을 하는지 알아보겠습니다. 공식 문서로 가보면,
컨트롤러의 뷰가 메모리에 로드된 이후 호출된다고 소개가 되어있네요!
한번 직접 확인해보겠습니다
일단 함수가 호출되면 로그를 남기도록 한 뒤,, 실행해보면
이처럼 실행이 되고, 로그도 잘 남는 것을 볼 수 있습니다,,, 위의 이미지에서 viewDidLoad() 뿐 아니라 다른 메서드들도 있는 것을 볼 수 있는데, 다음과 같습니다. 메서드 이름만 읽고도, 대략 무슨 역할을 하는 메서드인지 알수 있겠죠?
- viewDidLoad() : 뷰가 로드되었다 -> 뷰 계층이 메모리에 로드된 직후 호출되는 메서드
- viewWillAppear() : 뷰가 나타날 것이다 -> 뷰가 뷰 계층에 추가되고, 화면이 표시되기 직전에 호출되는 메서드
- viewDidAppear() : 뷰가 나타났다 -> 뷰가 뷰 계층에 추가되어 화면이 표시되면 호출되는 메서드
- viewWillDisappear() : 뷰가 사라질 것이다 -> 뷰가 뷰 계층에서 사라지기 직전에 호출되는 메서드
- viewDidDisappear() : 뷰가 사라졌다 -> 뷰가 뷰 계층에서 사라진 후 호출되는 메서드
이번에는 ,뷰컨트롤러를 하나 더 만들어서 네비게이션 컨트롤러로 뷰컨트롤러의 이동과정을 따라가봅시다 👣
실행한 화면은 다음과 같습니다.
로그를 보면, 위의 이미지에서 봤던 순서대로 (viewDidLoad() -> viewWillAppear() -> viewDidAppear() -> viewWillDisappear() -> viewDidDisappear()) 작동하는것을 볼 수 있습니다!! 👍
References
'개발🧑💻 > 📱 iOS' 카테고리의 다른 글
[iOS] Frame vs Bounds. (0) | 2021.12.16 |
---|---|
[iOS] 오토레이아웃 (Auto Layout) 을 알아보자! (0) | 2021.12.11 |