반응형
처음에 웹을 공부할 때 라이프사이클에 대해 조금만 하고 넘어간 적이 있는데 나중에 사용하다 보니 이 라이프사이클을 잘 아는게 작동하는데 매우 중요한 요소라는 것을 알았습니다.
마찬가지로 IOS를 처음 공부하는 지금 분명하게 짚고 넘어가는 것이 좋을 것 같습니다.
Swift의 라이프사이클 메서드의 이름은 직관적입니다.
다음은 print()를 override에 추가해 콘솔에 라이프 사이클을 찍어볼 수 있도록 하였습니다.
class ViewController: UIViewController {
// 뷰가 처음 로드될 때 실행
override func viewDidLoad() {
super.viewDidLoad()
print("뷰 로드")
}
// 뷰가 화면에 나타나기 전에 실행됨
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("뷰 나타날 예정")
}
// 뷰가 나타나면 실행
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("뷰 나타났음.")
}
// 뷰가 사라지기 전에 실행
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
print("뷰 사라질 예정")
}
// 뷰가 사라지면 실행
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
print("뷰 사라짐")
}
}
뷰가 처음 보여지면 위의 순서와 같은 순서로 콘솔에 찍히게 됩니다.
1. 뷰 로드
2. 뷰 나타날 예정
3. 뷰 나타남
-- 여기서 부터 뷰가 사라질 때
4. 뷰 사라질 예정
5. 뷰 사라짐
Root 같은 경우는 이전으로 돌아갈 일이 없어 viewDidLoad는 한 번만 실행되고 이후에는 2~4만 반복되지만
만약 다른 ViewController로 이동했다가 돌아오고다시 이동하면 viewDidLoad는 다시 호출됩니다.
반응형
'iOS > UIKit' 카테고리의 다른 글
[IOS] @IBDesignable , @IBInspectable (0) | 2022.02.01 |
---|---|
[IOS] 화면(ViewController)간 데이터 주고 받기 2 상위->하위 (0) | 2022.01.31 |
[IOS] 화면(ViewController)간 데이터 주고 받기 1 하위->상위 (0) | 2022.01.31 |
[IOS]스토리보드 NavigationController 화면 전환 (0) | 2022.01.30 |
[IOS]storyBoard에서 ViewController 연결하기 (0) | 2022.01.30 |