- viewDidLoad()
- 뷰가 메모리에 생성됐을 때 호출됨 (최초 1번)
- 뷰에 속한 내용들이 모두 메모리에 로드된 후에 호출되기 때문에, viewdidload를 실행할 때는 outlet 과 같은 변수들에 모두 값이 채워져있음이 보장됨
- viewWillAppear()
- 뷰가 App의 뷰 계층에 추가될 때 호출됨 (스크린에 뷰가 뜨기 바로 직전 → 뷰가 뜰 때 마다 호출)
*주의점: 뷰가 처음 생성될 때만 viewDidLoad()가 실행되기 때문에, 만약 A뷰를 띄우고 B뷰로 넘어갔다가 다시 A뷰로 돌아오는 경우 viewDidLoad()는 실행되지 않지만 viewWillAppear()는 실행됨. 따라서 화면이 뜰 때 마다 실행되어야 하는 코드는 viewWillAppear()에 속해야한다.
- viewDidAppear()
- 뷰가 앱의 뷰 계층에 추가된 후에 호출됨
- 사용 예: 애니메이션 추가할 때 → 뷰가 나타나고 난 후에 애니메이션이 나와야 타이밍이 적절해짐.
(viewDidLoad()나 viewWillAppear()에 넣으면 어무 일찍 애니메이션이 실행됨)
- viewWillDisappear()
- 뷰가 앱 hierarchy**(뷰 계층)에서 삭제되기 직전에** 호출됨
- 사용 예: 뷰가 사라지기전에 뷰에 있는 데이터나 뷰에서 변경된 데이터를 저장해두어야 할 때
- viewDidDisappear()
- 뷰가 앱의 뷰 계층에서 지워진 직후 호출됨
- viewWillLayoutSubviews()
- 뷰의 bound가 변할 때, 그치만 뷰의 subview들이 배치되기 직전에 호출됨
- 실행 예: 가로모드에서 세로모드로 변할 때 view의 bound가 변함
- viewDidLayoutSubviews()
- 뷰의 bound가 변할 때, 뷰의 subview들도 배치된 후에 호출됨
728x90
'iOS' 카테고리의 다른 글
[iOS] 프로토콜 지향 프로그래밍 (POP) (0) | 2025.04.02 |
---|---|
[iOS] Network Calls (네트워크 호출) (0) | 2025.03.28 |
[iOS] Delegate & Protocol (0) | 2025.03.26 |
[iOS+@] Concurrency (동시성) (0) | 2025.03.25 |
[iOS+@] Dependency Injection (의존성 주입) (0) | 2025.03.24 |