viewController 의 생명주기 ( UIViewController's Life cycle)
2023. 11. 26. 01:26ㆍApple/iOS
기본적으로, UIKit 에서 ViewController 는
자신이 관리하는 View 와 AppData 사이의 중개자 역할을 한다.
클래스 메서드와 속성을 UIViewController를 사용해 앱의 시각적 표현을 관리할 수 있다.
뷰 컨트롤러의 주요 책임
- 일반적으로 기본 데이터 변경에 대한 응답으로 뷰 내용 업데이트
- 뷰와의 사용자 상호작용에 응답
- 뷰 크기 조정 및 전체 인터페이스 레이아웃 관리
- 앱에서 다른 뷰 컨틑롤러를 포함한 대른 객체와의 조정
ViewController 가 사용자가 앱을 구동하고 화면이 시작하고 처음 보이는 뷰와 다른 뷰로 이동하고 어떤 버튼을 눌렀을 때 화면 전환이 되거나, 사라지는 등의 주기를 설정해 줄 수 있는게 바로 ViewController 의 생명주기 (Life cycle) 이다.
뷰가 제거되었을 때 -> Disappeared
뷰가 더해질때 -> (Disappeared -> Appearing ) 뷰가 사라졌다 나타날 때
Appearing -> Appeared : 뷰가 나타나면서 나타났을 때 ( viewDidAppear)
Appeared -> Disappearing: 뷰가 나타났고 사라지고 있을 때(사라질 때) (viewWillDisappear)
Disappearing -> Disappeared: 사라지다가 아예 없어짐 ( 뷰제거 ) Disappeard
Creating a view controller - 뷰 생성
init()
: 뷰를 직접 생성하는 것
그 방법은 2가지 형태가 있음- init(nibName: String?, bundle: Bundle?) : nib, xib 스토리보드 파일의 동일한 부품같은 디자인이 있으면 가지고 와서 쓸수있다. ->지정된 번들의 nib 파일을 사용하여 뷰 컨트롤러를 생성합니다.
- init(coder: NSCoder): unarchiver(압축되지 않은 데이터)들에 데이터가 포함된 뷰 컨트롤러를 생성한다.
Managing the view - 뷰 관리
loadView()
: 뷰를 로드 ( 메모리에 올리는 함수)viewDidLoad()
: view 가 메모리에 올라온 후 호출 -> view에 추가 초기화 하려고 하면 viewDidLoad()를 재정의 해서 사용하라고 공식문서에서 언급한다.
=> view 가 메모리에 올라올 때 한번만 실행, 처음 한번만 실행하면 되는 코드를 이 곳에 작성
Responding to view-related events - 뷰 관련 이벤트 응답
viewWillAppear(_ :)
화면에 나타나기 전에 호출 ( 화면에 띄워줄 때마다 호출된다 )viewDidAppear(_ :)
스크린에 뷰가 나타난 후 호출 ( 뷰의 애니메이션을 시작하거나, 타이머를 시작하는 등 화면이 나타난 후 필요한 작업 처리viewWillDisappear(_ :)
: 스크린에서 뷰가 사라지기 전에 호출, (애니메이션 멈추거나 타이머 종료시키는 등 작업처리)viewDidDisappear(_ :)
:스크린에서 뷰가 사라진 후 호출(화면이 스크린에서 내려간거지, 메모리 해제는 아님)
'Apple > iOS' 카테고리의 다른 글
[ Unit Test ] Xcode 에서 단위 테스트 하는 것, XCTest - 1 (2) | 2024.01.18 |
---|---|
KVO(Key Value Observing) 의 동작방식 (0) | 2023.12.02 |
NotificationCenter 에 대해서 알아보자. (0) | 2023.11.19 |
[ UIKit ] - UIWindow의 역할 (Windows and Screens) (0) | 2023.11.17 |
view - frame 과 Bounds 의 차이 (0) | 2022.03.25 |