주말 맞이 멍 때리는 중
주말이 오면 긴장이 풀려서 그런지
나른하다
오늘도 달려보자
UIViewController 생명주기
화면이 표시되기 전부터 제거된 후 까지의 생명주기를 의미한다
init
viewController 객체가 생성됨
loadView
View를 메모리에 로드
ViewDidLoad
View의 Controller가 메모리에 로드된 뒤 호출
화면이 표시되기 전 초기화하는 작업
-> View의 로딩이 완료 되었을 때
시스템에 의해 자동으로 호출
리소스를 초기화하거나 초기화면을 구성하는 용도
화면이 처음 만들어질 때 한번 실행
처음 한번만 실행해야하는 초기화 코드 있을 경우
메소드 내부에 작성
viewWillAppear
View가 표시되기 직전에 호출
화면 전환 시 View가 전환될 때 호출
viewDiadAppear
View가 표시된 후 호출
viewWillDisappear
View가 사라지기 직전 호출
화면 전환 시 바뀔 화면으로 전환 되기 직전에 호출
viewDidDisappear
View가 사라지기 직후 호출
화면 전환 시 바뀔 화면으로 전환 되기 직후에 호출
viewDidUnload
View가 메모리에서 해제된 뒤 호출
예제
앱에 뷰를 처음 띄웠을 때
viewDidLoad 실행 후 viewWillAppear viewDidAppear가 실행된다
그 후 두번째 화면으로 화면전환을 했을 때
두번째 화면에서 viewDidLoad가 실행되고
첫번째 뷰는 viewWillDisappear 실행 후 두번째 View가 viewWillAppear한 후 viewDidDisappear한다
그 후 두번째 View는 viewDidAppear한다
다시 첫번째 뷰로 화면전환을 해보자
viewDidLoad가 실행이 안된체 viewWillDisappear -> viewWillAppear -> viewDidDisappear -> viewDidAppear가 실행되는 것을 볼 수 있다
viewDidLoad는 화면 전환시 현재 네비게이션 컨트롤러에 rootView여서 한번만 호출되기 때문
'Tech > iOS' 카테고리의 다른 글
[iOS] Day 15 - TableView 상에서 Switch 구현 (0) | 2022.07.18 |
---|---|
[iOS] Day 14 - Extension (0) | 2022.07.17 |
[iOS] Day 12 - UserDefaults (0) | 2022.07.15 |
[iOS] Day 12 - Storyboard에서 화면 전환 설정 (0) | 2022.07.15 |
[iOS] Day 11 - Storyboard 여러개 지정, Open Source Library in Xcode (0) | 2022.07.14 |