개발자의 삽질
[iOS] 뷰 컨트롤러의 수명 주기 (ViewController LifeCycle) 본문
https://developer.apple.com/documentation/uikit/uiviewcontroller
ViewController LifeCycle 에 대해 알아보자!
뷰 컨트롤러의 수명주기는 아래의 그림을 통해 알 수 있다.
총 4개의 과정으로 나뉘어져 있다.
- Appearing: 뷰가 화면에 나타나는 중
- Appeared: 뷰가 화면에 나타난 상태
- Disappearing: 뷰가 화면에서 사라지는 중
- Disappeared: 뷰가 화면에서 사라진 상태
위 4개의 과정 가운데 호출되는 메서드들이 있다.
viewDidLoad()
- 뷰 컨트롤러의 모든 뷰들이 메모리에 로드됐을 때 호출
- 메모리에 처음 로드될 때 한 번만 호출
- 보통 딱 한번 호출될 행위들을 이 메소드 안에 정의 함
- 뷰와 관련된 추가적인 초기화 작업, 네트워크 호출
viewWillAppear()
- 뷰가 뷰 계층에 추가되고, 화면에 보이기 직전에 매 번 호출
- 다른 뷰로 이동했다가 돌아오면 재 호출
- 뷰와 관련된 추가적인 초기화 작업
viewDidAppear()
- 뷰 컨트롤러의 뷰가 뷰 계층에 추가된 후 호출
- 뷰를 나타낼 때 필요한 추가 작업
- 애니메이션을 시작하는 작업
viewWillDisappear()
- 뷰 컨트롤러의 뷰가 뷰 계층에서 사라지기 전에 호출
- 뷰가 생성된 뒤 작업한 내용을 되돌리는 작업
- 최종적으로 데이터를 저장하는 작업
viewDidDisappear()
- 뷰 컨트롤러의 뷰가 뷰 계층에서 사라진 뒤에 호출
- 뷰가 사라지는 것과 관련된 추가 작업
관련해서 직접 코드를 통해 확인하고 싶다면 아래의 코드를 이용해 보자
override func viewDidLoad() {
super.viewDidLoad()
print("ViewController 뷰가 로드 되었다.")
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("ViewController 뷰가 나타날 것이다.")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("ViewController 뷰가 나타났다.")
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
print("ViewController 뷰가 사라질 것이다.")
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
print("ViewController 뷰가 사라졌다.")
}
'iOS' 카테고리의 다른 글
[iOS] ISO8601DateFormatter 를 이용해 날짜 데이터를 문자로 바꾸어보자! (0) | 2022.02.09 |
---|---|
[iOS] "Class ViewController has no initializers" 에러 고치기 (0) | 2022.02.07 |
[iOS] UIPickerView 를 사용해보자 (0) | 2022.01.17 |
[iOS] URLSession 을 이용한 네트워킹 (0) | 2022.01.12 |
[iOS] UIImageView 를 터치할 수 있게 해보자! (Tap Gesture Recognizer) (0) | 2021.12.29 |
Comments