issues
search
yoogail105
/
KkokkoSwift
꼬리에 꼬리를 무는 swift 개념 정리
28
stars
0
forks
source link
# View Controller의 Life cycle
#74
Open
yoogail105
opened
2 years ago
yoogail105
commented
2 years ago
View Controller의 생명주기
화면이 나타났다가, 사라지는 등의 동작을 하는 주기
UIViewController를 사용해서 프로젝트를 만들다보면,
viewDidLoad()
라는 함수를 익숙하게 만날 수 있는데, 그것 역시 ViewController의 생명 주기 안에 속해있는 함수이다.
먼저 나타나는 것과 사라지는 것에 대해
Will
,
Did
로 나뉘어져 있는데 이는 말 그대로 나타날 것, 나타났음, 사라질 것, 사라졌음을 의미한다.
그리고 이러한 일련의 함수는 애플에서 미리 정의해놓은 함수를 불러와서
재정의override
하는 방식으로 사용된다. XCode에서도,
override
라는 키워드와 함께 사용한다.
종류
loadView
viewDidLoad
viewWillAppear
viewDidAppear
viewWillDisappear
viewDidDisappear
viewDidUnload
loadView
controller가 관리할 뷰를 만든다.
코드를 이용해서 UIView를 그렸을 때, 이 곳에서 불러와주었다.
viewDidLoad
뷰가 로드 되었음. 나타났음
뷰의 컨트롤러가 메모리에 올라간 후에 불린다.
화면이 만들어졌을 때
처음 한 번만 호출
되기 때문에 → 리소스를 초기화, 초기 화면을 구성하는 용도로 사용됨
viewWillAppear
뷰가 나타날 것임
viewController에게 view hierarchy에 뷰가 추가될 것이라고 알린다.
viewDidLoad와의 차이점?
viewDidLoad()는 메모리에 올라갔을 때, 처음화면이 만들어졌을 때에
한 번만 호출
된다.
예를 들어서, A → B → A 로의 화면 전환이 이루어졌다고 할 때,
A화면: viewDidLoad, viewWillAppear
B화면: viewDidLoad, viewWillAppear
A화면: viewWillAppear
위와 같이 이미 한 번 로드된 화면으로 돌아갈 때 viewDidLoad는 호출되지 않는다.
viewDidAppear
뷰가 나타났음
viewController에게 view hierarchy에 뷰가 추가되었다고 알린다.
뷰가 화면에 나타난
직후
에 실행된다.
viewWillDisAppear
뷰가 사라질 것임
viewController에게 view hierarchy에서 뷰가 제거될 것이라고 알린다.
viewDidDisAppear
뷰가 사라졌음
viewController에게 view hierarchy에서 뷰가 제거되었다고 알린다.
LifeCycle 동작 확인하기
(아까와 같이)화면 A에서 버튼을 눌러 B로 이동, 다시 A로 이동한다고 할 때
A화면 등장
A viewDidLoad
A viewWillAppear
A viewDidAppear
A화면에서 버튼을 눌러 B화면으로 이동
A viewWillDisappear
B viewDidLoad
B viewWillAppear
A viewDidDisappear: A viewWillDisappear후에 바로 호출되지 않음
B viewDidAppear
B화면에서 다시 A로 이동
B viewWillDisappear
A viewWillAppear: A viewDidLoad 호출되지 않음
B viewDidDisappear: B viewWillDisappear후에 바로 호출되지 않음
A viewDidAppear
🔖 출처
애플 개발자 문서
[iOS ) View Controller의 생명주기(Life-Cycle)](https://zeddios.tistory.com/43)
View Controller의 생명주기
viewDidLoad()
라는 함수를 익숙하게 만날 수 있는데, 그것 역시 ViewController의 생명 주기 안에 속해있는 함수이다.Will
,Did
로 나뉘어져 있는데 이는 말 그대로 나타날 것, 나타났음, 사라질 것, 사라졌음을 의미한다.override
라는 키워드와 함께 사용한다.loadView
viewDidLoad
viewWillAppear
viewDidAppear
viewWillDisAppear
viewDidDisAppear
LifeCycle 동작 확인하기
🔖 출처