IOS/Swift
Swift - UIViewController
montt
2022. 9. 28. 22:34
UIViewController
UIViewController
UIKit 앱의 뷰 계층 구조를 관리하는 객체로 앱은 최소 하나 이상의 뷰 컨트롤러를 가지고 있다.
UIViewController의 주요 역할
- 데이터 변화에 따라서 view 컨텐츠를 업데이트 한다.
- View들과 함께 사용자 상호작용에 응답한다.
- View를 리사이징하고 전체적인 인터페이스의 레이아웃을 관리한다.
- 다른 뷰 컨트롤러 들과 함께 앱을 구성한다.
UIViewController LifeCycle
UIViewController LifeCycle CallBack Method
- init
- 뷰 컨트롤러의 초기화를 진행하면 내부의 객체들을 초기화하는 작업이 수행된다.
- 내부의 뷰들이 생성된 것이 아니기 때문에 내부 뷰 요소에는 접근할 수 없다.
- loacView
- 화면의 최상위단에 띄어질 View를 설정하는 메소드
- outlet 및 action 들이 loadView에서 생성되고 연결된다.
- viewDidLoad
- 뷰 컨트롤러의 모든 뷰들이 메모리에 로드된 직후 호출되는 메소드
- 1회 호출되며 메모리 경고로 뷰가 사라지지 않는 이상 다시 호출되지 않음
- 주로 뷰의 초기화 작업을 담당
- viewWillAppear
- 뷰가 뷰 계층에 추가되고, 화면에 보이기 직전에 매번 호출되며, 다른 뷰로 이동 후 다시 돌아오면 재호출
- 뷰와 관련된 추가적인 초기화 작업을 담당
- viewDidAppear
- 뷰 컨트롤러의 뷰가 뷰 계층에 추가된 후 호출
- 뷰를 나타낼 때 필요한 추가 작업, 애니메이션을 시작하는 작업을 담당
- viewWillDisappear
- 뷰 컨트롤러의 뷰가 뷰 계층에서 사라지기 전 호출
- 뷰가 생성된 뒤 작업한 내용을 되돌리는 작업 및 최종적으로 데이터를 저장하는 작업을 담당
- viewDidDisappear
- 뷰 컨트롤러의 뷰가 뷰 계층에서 사라진 뒤에 호출
- 뷰가 사라지는 것과 관련된 추가 작업
viewDidUnload- 컨트롤러의 뷰가 메모리에서 해제될 때 호출 (더 이상 사용되지 않음)