반응형
View Contoller의 생명주기
앱은 보통 하나 이상의 화면들로 구성되어 있다. 즉 앱에는 하나 이상의 'View Controller'가 존재하는 것이다. 각각의 뷰 컨트롤러는 생명주기를 갖고 있다. 여기서 생명주기라는 것은 각각의 뷰 컨트롤러가 화면에 나타나거나 사라지는 것을 의미한다. 뷰 컨트롤러의 생명주기는 다음과 같다.
- Appearing : 뷰가 화면에 나타나는 중
- Appeared : 뷰가 화면에 나타나는게 완료된 상태
- Disappearing : 뷰가 화면에서 사라지는 중
- Disappeared : 뷰가 화면에서 사라진 상태
각각의 상태로 변경될 때 위의 그림에 표시된 메서드가 iOS 시스템에 의해 자동으로 호출된다. 각각의 의미에 대해서 살펴보자.
viewDidLoad()
- 위의 그림에서는 보이지 않지만 뷰 컨트롤러를 생성했을 때 자동으로 생성되어 있는 메서드이다.
- 해당 뷰가 메모리에 로드되었을 때 호출되는 메서드이다.
- 보통 딱 한번 호출될 행위들을 여기에 작성한다.
- 일반적으로 로드된 뷰에 대해 추가적인 초기화 작업을 수행할 때 해당 메서드를 재정의하여 사용한다.
viewWillApear(_:)
- 뷰가 이제 화면에 나타날 거라는 신호를 컨트롤러에게 알리는 역할을 하는 메서드이다.
- 해당 뷰가 화면에 표시되기 전에 처리해야 하는 작업을 여기에서 하면 된다. 예를 들어 화면이 보여지지 않는 동안 변경된 데이터 업데이트 등이 이에 해당한다.
- 뷰 컨트롤러가 화면에 나타날 때마다 반복 실행된다.
viewDidAppear(_:)
- 뷰 컨트롤러에게 해당 뷰가 뷰의 계층 구조에 추가되었음을 알리는 메서드이다.
- 즉, 뷰가 화면에 나타났음을 말한다.
- 뷰가 화면에 나타난 즉시 발생해야 하는 작업을 여기에 작성하면 된다.
viewWillDisappear(_:)
- 뷰 컨트롤러에게 해당 뷰가 뷰의 계층 구조에서 제거되려 함을 알리는 메서드이다.
- 뷰가 생성된 뒤 발생한 변화를 이전 상태로 되돌리기 좋은 시점이다.
- 최종적으로 데이터를 저장하는 작업을 해당 메서드에 정의한다.
viewDidDisappear(_:)
- 뷰 컨트롤러의 뷰가 뷰 계층에서 사라진 뒤에 호출되는 메서드이다.
- 뷰가 사라지는 것과 관련된 작업을 해당 메서드에 정의한다.
참고
- https://developer.apple.com/documentation/uikit/uiviewcontroller
- https://velog.io/@delmasong/Understand-the-View-Controller-LifeCycle
- https://zeddios.tistory.com/43
반응형
'iOS > iOS' 카테고리의 다른 글
[iOS] Date Picker - 날짜 선택 (0) | 2021.12.14 |
---|---|
[iOS] UITabBarController - 다중 선택 인터페이스 (0) | 2021.12.12 |
[iOS] UserDefaults를 사용한 데이터 저장 (0) | 2021.12.07 |
[iOS] UIAlertController를 이용한 메시지 창 (0) | 2021.12.07 |
[iOS] UITableView 알아보기 - 2 (0) | 2021.12.06 |
댓글