강의보고 정리하는 viewController의 Life Cycle,
틀린 내용이 있을 수도 있으니 참고 부탁드립니다아
1. LifeCycle의 용어 알아보기
LifeCycle 하면 앞에 ___appeared, ___disappearing 와 같은 단어들을 확인할 수 있는데,
요 단어들이 의미하는 것부터 알아봅시다.
요걸 알고 있어야 쉽게쉽게 이해할 수 있는거 같아여..
1) Appearing : 뷰가 화면에 나타나는 중
2) Appered : 뷰가 화면에 나타나는게 완료된 상태
3) Disappearing : 뷰가 화면에서 사라지는 중
4) Disappeared : 뷰가 화면에서 사라진 상태
2. 각각의 시점에 호출되는 method 알아보기
1) viewDidLoad()
- 뷰 컨트롤러의 모든 뷰들이 메모리에 로드됐을 때 호출
- 메모리에 처음 로드될 때 한 번만 호출
- 보통 딱 한번 호출될 행위들을 이 메소드 안에 정의함
- 뷰와 관련된 추가적인 초기화 작업, 네트워크 호출
2) viewWillappear()
- 뷰가 뷰 계층에 추가되고, 화면에 보이기 직전에 매 번 호출
- 다른 뷰로 이동했다가 돌아오면 재호출
- 뷰와 관련된 추가적인 초기화 작업
3) viewDidAppear()
- 뷰 컨트롤러의 뷰가 뷰 계층에 추가된 후 호출됨
- 뷰를 나타낼 때 필요한 추가 작업
- 애니메이션을 시작하는 작업
4) viewWillDisappear()
- 뷰 컨트롤러의 뷰가 뷰 꼐층에서 사라지기 전에 호출됨
- 뷰가 생성된 뒤 작업한 내용을 되돌리는 작업
- 최종적으로 데이터를 저장하는 작업
(5) viewDidDisappear()
- 뷰 컨트롤러의 뷰가 뷰 계층에서 사라진 뒤에 호출
- 뷰가 사리지는 것과 관련된 추가 작업
이렇게 글로만 쓰고 보면 무슨 말인지 이해가 안 가니까 직접 보면서 확인해 봅시당
맨 처음에 실행을 했을 때 타는 method는
viewDidLoad, viewWillAppear, viewDidAppear
말 그대로 로드 -> 이제 나타날 예정 -> 나타남
으로 진행되는 거를 볼 수 있어요
그럼 이제 다른 뷰로 이동해서 확인해 볼게여
두번째 button인 segue로 present 뷰로 이동해 봅시다.
(segue를 이용한 뷰 이동이고, present 형식으로 올라와여)
순서를 보면
viewWillDisappear, viewDidDisappear 이 호출 됩니다. (대체 did는 어디로 갔는지;;)
없어질 예정 -> 없어짐 method 가 타는걸 확인할 수 있네여
여기서 다시 back button을 눌러서 초기 화면으로 돌아가면
viewWillAppear, viewDidAppear이 타는걸 확인할 수 있습니당
전체적으로
load -> WillAppear -> DidAppeara -> WillDisappear -> DidDisappear -> 다시 WillAppear의
반복이라고 예측할 수 있을것 같아요.
만약에 여기서 추가로 저 뷰를 띄울때 Life Cycle을 확인해보면
띄워지는 뷰가 Load 되고
Will -> Did 순서대로 method가 로드 되는걸 볼 수 있어요.
일단은 이렇게까지만 정리해두고 나중에 더 추가해볼게여
사실 아직 몬가 잘 모르겠어서 더 무언가를 정리하지 못하겠지만
몬가 더 좋은 예제나 방법이 있다면 수정해보겠습니다..
'Swift' 카테고리의 다른 글
apple sandbox push services 인증서를 신뢰하지 않음 해결하기 (3) | 2023.12.01 |
---|---|
Tuist에서 CoreData 사용하기 (1) | 2023.11.29 |
Tuist 사용 시 Undefined symbol: _GULGetLoggerLevel 에러 해결하기 (0) | 2023.11.22 |
UIKit, xcode에 새로운 storyboard 추가하기 (1) | 2022.12.15 |
[SwiftUI] ScrollView 를 알아보자 (0) | 2022.11.11 |