View Controller 수명주기
- viewDidLoad()
- view controller content view (뷰 계층 구조의 맨 위) 생성되고 story board에서 load될 때 호출됨.
- view controller 출력은 method가 호출될 때까지 유효한 값을 갖도록 보장
- content view가 처음 생성될 때 한 번만 호출 (초기화 코드 있을 경우 작성)
- controller가 처음 instance화 될 때 content view가 반드시 생성되는 것은 아님
- system이나 code가 controller view 속성에 처음 access할 때 느리게 생성됨.
- viewWillAppear()
- controller content view가 앱의 view 계층 구조에 추가되기 직전에 호출됨
- content view가 화면에 표시되기 전에 발생해야하는 작업을 trigger
- system이 이 method를 호출한다고해서 content view가 표시된다는 보장은 없음.
- view가 다른 view에 의해 가려지거나 숨겨질 수 있음
- content view가 앱의 view 계층 구조에 추가 될 것임을 나타냄
- ▶ viewDidLioad()와 다른 점?
- view1을 생성했다고 하자.
- view1은 생성될 때 viewDidLoad(), viewWillAppear()가 각각 호출됐을 것이다.
- view1에서 view2로 이동했다고 하면 view2가 생성됐으므로 viewDidLoad(), viewWillAppear()가 호출됐을 것이다.
- 하지만, view2에서 다시 view1로 이동한다고 하면?
- view1에서는 viewWillAppear()만 호출된다
- ▶viewDidLoad()는 content view가 처음 생성될 때 딱 한 번만 호출되기 때문이다.
- viewDidAppear()
- view controller content view가 앱의 view 계층에 추가된 직후에 호출됨
- 데이터 가져오기 또는 애니메이션 표시와 같이 view가 화면에 표시되는 즉시 발생해야 하는 모든 작업 trigger
- system이 이 method를 호출하기 때문에 content view가 표시된다는 보장은 없음
- view가 다른 view에 의해 가려지거나 숨겨질 수 있음
- content view가 앱의 view 계층 구조에 추가되었음을 나타냄
- viewWillDisappear()
- view controller content view가 앱의 view 계층에서 제거되기 직전에 호출됨
- 변경 사항 및 commit 또는 the first responder status를 resigning하는 것과 같은 cleamup tasks 수행
- system은 content view가 숨겨지거나 가려지면 이 method를 호출하지 않음
- content view가 앱의 view 계층에서 제거되려고 할 때만 호출됨
- viewDidDisappear()
- view controller content view가 앱의 view 계층에서 제거된 직후에 호출됨
- 추가 분해 작업을 수행
- system은 content view가 숨겨지거나 가려지면 이 method를 호출하지 않음.
- content view가 앱의 view 계층에서 제거된 경우에만 호출됨
320x100
'프로그래밍 > iOS-Swift' 카테고리의 다른 글
[SWIFT] EXTENSION (0) | 2021.04.05 |
---|---|
[SWIFT] Autoresizing (0) | 2021.04.02 |
[SWIFT] 로컬 파일 로드하는 방법 (1) | 2021.03.31 |
[SWIFT] WKWebView (0) | 2021.03.31 |
[SWIFT] Lamp On Off App (0) | 2021.03.31 |
댓글