ViewController의 lifecycle methods
viewController은 화면에 보여지기 전부터 화면에서 사라질 때까지 다음 5단계의 lifecycle 메서드들을 수행한다.
viewDidLoad
↓
viewWillAppear
↓
viewDidAppear
↓
viewWillDisappear
↓
viewDidDisappear
각 단계에 맞는 작업을 수행하는 것이 매우 중요하다. 아래에서 각 메서드가 언제 불리는지 알아보도록 하자.
viewDidLoad
view가 로드됐을 때 한 번만 불린다. 이 단계에서는 view를 초기화 하는 작업을 한다.
viewWillAppear
view가 사용자에게 보여지기 전에 불린다. UI 컴포넌트의 visibility를 조절하거나 할 때 유용하다.
이 메서드는 view가 백그라운드에 내려갔다 왔을 때도 불리므로 여러번 불린다.
viewDidAppear
view가 사용자에게 보여졌을 때 시작한다. 애니메이션을 시작하거나, UI변화를 시작해야 할 때 사용한다.
이 메서드는 view가 백그라운드에 내려갔다 왔을 때도 불리므로 여러번 불린다.
viewWillDisappear
view가 사라지기 전에 불린다. 애니메이션을 중지하거나 UI 변화를 중지시킬 때 사용한다.
이 메서드는 view가 백그라운드에 내려갈 때 불리므로 여러번 불린다.
viewDidDisappear
view가 화면에서 사라진 후에 불린다.
이 메서드는 view가 백그라운드에 내려갈 때 불리므로 여러번 불린다.
ViewController의 Lifecycle을 아는 것이 중요한 이유
여러 View가 있을 때 하나의 View에서 다른 View로 Seque하거나 View가 백그라운드에 갔다가 내려오는 경우 ViewController의 Lifecycle 메서드들이 계속해서 불린다. 만약 잘못된 부분에서 인스턴스를 만들거나 한다면 필요한 부분에서 객체에 대한 참조가 불가능핟거나 너무 여러곳에서 인스턴스가 생성되어 메모리가 비효율적으로 사용될 수 있다. 따라서 Lifecycle에 맞는 처리를 하는 것이 매우 중요하다.
'IOS > Swift' 카테고리의 다른 글
[Swift] ObservableObject이용해 옵저버(Observer) 패턴 구현하기 (0) | 2021.12.31 |
---|---|
[Swift] TableView 이용해 화면에 목록 표시하기 (0) | 2021.12.28 |
[Swift] 위치 권한 요청 방법 및 요청 문구 변경 방법 알아보기 (0) | 2021.12.26 |
[Swift] extension 키워드 이용해 타입 기능 확장하기 (0) | 2021.12.26 |
[Swift] Background Thread에서 Task 실행하기 (1) | 2021.12.26 |