notes
iOS - UIViewController 생명주기
viewDidLoad와 Appear 왕복 차이, deinit까지 한눈에.
Android Activity 다이어그램 그려 두고 iOS 쪽을 안 적어두면 비교가 안 된다. VC 생명주기를 내 말로 다시 씀.
한 번 vs 여러 번
loadView/viewDidLoad: 뷰 그래프 만들 때 한 번viewWillAppear/viewDidAppear: 화면 올 때마다viewWillDisappear/viewDidDisappear: 내려갈 때마다deinit: 메모리에서 빠질 때 (Appear와 별개)
어디에 뭘 두나
override func viewDidLoad() {
super.viewDidLoad()
// outlet 연결 후 초기 UI, 제스처 등록
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 탭 돌아올 때마다 갱신할 데이터
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// 타이머·관찰자 정리
}
헷갈림
푸시했다가 뒤로 오면 viewDidLoad는 안 불리고 Appear만 다시 돈다. 그래서 “첫 로딩”과 “다시 보임”을 같은 함수에 몰아넣으면 버그가 난다.