UIViewController의 객체에는 View 객체를 관리하기 위한 메서드들이 정의되어 있다.
이 메서스들은 각자 자신들이 불려져야할 타이밍일 때 ios 시스템에 의해 자동으로 호출된다.
UIViewController 의 하위 클래스를 생성할 때 UIViewController 에 정의된 이 메서드들을 override 하여 LifeCycle 상황에 맞게 적절한 로직들을 메서드에 추가할 수 있다.
시스템이 어떤 메서드를 언제 호출해야하는지를 먼저 이해해야 그 시점에 잘 맞춰 UI 변화나 데이터의 변화를 처리할 수 있다.
View 가 보여지는 상황은 크게 4가지로 나누어서 설명할 수 있다.
- Appearing : 뷰가 화면에 나타나는 중
- Appeared : 뷰가 화면에 나타나는게 완료된 상태
- Disappearing : 뷰가 화면에서 사라지는 중
- Disappeared : 뷰가 화면에서 사라진 상태
UIViewController 는 View 가 보여지는 상태에 따라 시스템에 호출하는 Life Cycle Method 가 다르다.
viewDidLoad()
- ViewController 의 모든 뷰들이 메모리에 로드되었을 때 호출
- 메모리에 처음 로드될 때 한번만 호출
- 보통 딱 한번만 호출될 행위들을 이 메서드 안에 정의한다.
- 뷰와 관련된 추가적인 초기 작업, 네트워크 호출
viewWillDisappear()
- View 가 View 계층에 추가되고, 화면에 보이기 직전에 매 번 호출
- 다른 뷰로 이동했다가 돌아오면 재호출
- 뷰와 관련된 추가적인 초기 작업
viewDidAppear()
- ViewController 의 View 가 View 계층에 추가된 후 호출된다.
- 뷰를 나타낼 때 필요한 추가 작업
- 애니메이션을 시작하는 작업
viewWillDisappear()
- ViewController 의 View 가 View 계층에서 사라지기 전에 호출된다.
- View 가 생성된 뒤 작업한 내용을 되돌리는 작업
- 최종적으로 데이터를 저장하는 작업
viewDidDisappear()
- ViewController 의 View 가 View 계층에서 사라진 뒤에 호출된다.
- View 가 사라지는 것과 관련된 추가 작업
추가 설명
' iOS > UIKit' 카테고리의 다른 글
UIKit 계산기 Storyboard UI (0) | 2022.07.15 |
---|---|
UIStackView (0) | 2022.07.11 |
ViewController 간 데이터 전달 (0) | 2022.07.06 |
ViewController & AutoLayout (0) | 2022.06.30 |
Cocoa touch Framework & UIKit (MVC 패턴) (0) | 2022.06.29 |