반응형
해당 글에서는 UIViewController 내의 라이프사이클에 대해서 이해를 돕기 위해 작성한 글입니다.
1) UIViewController 라이프사이클(Lifecycle)
💡 UIViewController 라이프사이클(Lifecycle)이란?
- UIViewController는 iOS 앱에서 화면을 구성하는 핵심적인 역할을 담당합니다.
- 이러한 UIViewController가 생성되고 화면에서 제거될 때, 일련의 라이프사이클 메서드가 호출됩니다.
2) 라이프사이클 과정
💡 클래스에서는 UIViewController로 부터 상속을 받아서 라이프 사이클 메서드의 사용이 가능합니다.
// 콜론(:)으로 UIViewController로 부터 상속을 받습니다.
class MyViewController: UIViewController {
// MyViewController 클래스의 내용
}
1. 요약
라이프 사이클 메서드 | 설명 |
loadView() | UIViewController의 view를 생성하고 초기화하는 메서드입니다. 이 메서드는 UIViewController가 생성될 때 단 한 번만 호출됩니다. |
viewDidLoad() | 해당 뷰의 로드가 완료된 후 호출됩니다. 해당 뷰에 대한 초기화 및 설정 작업을 수행합니다. |
viewWillAppear() | 해당 뷰가 화면에 나타나기 직전에 호출됩니다. 해당 뷰가 보여지기 전에 필요한 작업들을 수행합니다. |
viewDidAppear() | 해당 뷰가 화면에 나타난 후에 호출됩니다. 해당 뷰가 나타난 후에 필요한 작업들을 수행합니다. |
viewWillDisappear() | 해당 뷰가 화면에서 사라지기 직전에 호출됩니다. 해당 뷰가 사라지기 전에 필요한 작업들을 수행합니다. |
viewDidDisappear() | 해당 뷰가 화면에서 사라진 후에 호출됩니다. 해당 뷰가 사라진 후에 필요한 작업들을 수행합니다. |
didReceiveMemoryWarning() | 메모리 부족 상황에서 호출되는 메서드입니다. 해당 UIViewController를 해제하고자 할 때 호출됩니다. 메모리 관리를 위한 작업들을 수행합니다. |
2. 메서드 상세 설명
💡 메서드의 접두사에 따라서 구분이 됩니다.
prefix | 설명 |
did - | 완료된 후에 수행이 됩니다 |
will - | 완료되기 전에 수행이 됩니다. |
2.1. loadView()
💡 UIViewController의 view를 생성하고 초기화하는 메서드입니다.
💡 이 메서드는 UIViewController가 생성될 때 단 한 번만 호출됩니다.
class MyViewController: UIViewController {
override func loadView() {
super.loadView()
// view 생성 및 설정 작업 수행
}
}
2.2. viewDidLoad()
💡 UIViewController가 처음 생성된 후, 해당 뷰의 로드가 완료된 후 호출됩니다.
💡이 메서드에서는 해당 뷰에 대한 초기화 및 설정 작업을 수행합니다.
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 뷰의 초기화 및 설정 작업 수행
}
}
2.3. viewWillAppear()
💡 UIViewController의 뷰가 화면에 나타나기 직전에 호출됩니다.
💡 이 메서드에서는 해당 뷰가 보여지기 전에 필요한 작업들을 수행합니다.
class MyViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 뷰가 나타나기 전에 필요한 작업 수행
}
}
2.4. viewDidAppear()
💡 UIViewController의 뷰가 화면에 나타난 후에 호출됩니다.
💡 이 메서드에서는 해당 뷰가 나타난 후에 필요한 작업들을 수행합니다.
class MyViewController: UIViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// 뷰가 나타난 후에 필요한 작업 수행
}
}
2.5. viewWillDisappear()
💡 UIViewController의 뷰가 화면에서 사라지기 직전에 호출됩니다.
💡 이 메서드에서는 해당 뷰가 사라지기 전에 필요한 작업들을 수행합니다.
class MyViewController: UIViewController {
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// 뷰가 사라지기 전에 필요한 작업 수행
}
}
2.6. viewDidDisappear()
💡 UIViewController의 뷰가 화면에서 사라진 후에 호출됩니다.
💡 이 메서드에서는 해당 뷰가 사라진 후에 필요한 작업들을 수행합니다.
class MyViewController: UIViewController {
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// 뷰가 사라진 후에 필요한 작업 수행
}
}
2.7. didReceiveMemoryWarning()
💡 메모리 부족 상황에서 호출되는 메서드입니다.
💡 메모리 부족으로 인해 시스템에서 해당 UIViewController를 해제하고자 할 때 호출됩니다.
💡 이 메서드에서는 메모리 관리를 위한 작업들을 수행합니다.
class MyViewController: UIViewController {
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// 메모리 부족 시 수행할 작업 수행
}
}
오늘도 감사합니다. 😀
반응형
'Swift > 이해하기' 카테고리의 다른 글
[Swift] UserDefaults 이해하고 Observer 구성하기 : Extention과 app의 통신 (0) | 2023.05.09 |
---|---|
[Swift] 저장소 이해하기 : NotificationCenter, UserDefaults, AppGroup(FileManager) (0) | 2023.05.04 |
[Swift] iOS 앱 상태 이해 및 백그라운드로 이동방법 : 앱 라이프 사이클, 앱 벗어나기 (1) | 2023.04.25 |
[Swift] 화면 공유 기술 - 3 : 전체 시스템 화면 공유 개발 (3) | 2023.03.10 |
[Swift] 화면 공유 기술 - 2 : 전체 시스템 화면 공유 구축 (0) | 2023.03.10 |