(iOS)ViewController 생명 주기

박성민·2020년 10월 25일
1

iOS

목록 보기
5/30

ViewController의 특징과 생명주기

1. View Management

View 계층관리
모든 ViewController마다 RootView를 가지며, 화면에 표시하기 위해서는 해당 RootView 계층에 속해야함

2. Data Marshaling

MVC(Model-View-Controller)
자신이 관리하는 View와 Data의 중계 역할(통제)

3. User Interactions

ViewController는 Responder객체로써 직접 이벤트를 받아 처리하는 것이 가능하나 일반적으로는 지양합니다.
View가 자신의 Touch Event를 연관된 객체(보통 뷰컨트롤러)에 action메서드나 delegate로 전달

4. Resource Management

ViewController가 생성한 모든 뷰와 객체들은 ViewController의 cordladlek.
UIViewController의 LifeCycle에 따라 생성되었다가 자동 소멸되기도 하지만 ARC 개념에 맞게 관리 필요.
메모리 부족시 didReceiveMemoryWarning 메서드에서 캐시메모리 등 꼭 유지하지 않아도 되는 메서모리들은 정리가 필요하다.

5. Adaptivity

ViewController는 View의 표현을 책임지고, 현재 환경에 적절한 방법으로 적용되도록 할 책임을 가진다.

ViewController 생명주기

1. loadView

  • 화면에 띄워줄 View를 만드는 메서드로 View를 만들고 메모리에 올려줍니다.
  • 일반적으로 사용자는 이 메서드를 직접 호출하면 안됩니다.
  • 자세한 설명은 아래 링크에서 확인
    링크텍스트

2. viewDidLoad

  • viewDidLoad 메서드는 뷰의 로딩이 완료 되었을 때 시스템에 의해 자동으로 호출됩니다.(loadView()직후 호출됨)
  • Low memory와 같이 특별한 경우가 아니라면 화면이 처음 만들어질 때 한 번만 실행 되므로, 초기화 코드가 있을 경우 이 메서드 내부에 작성하면 됩니다.

3. viewWillAppear

  • ViewContoller의 Root View가 로드된 이후에 Window의 View계층으로 더해지기 직전 호출되는 메서드입니다.
  • 다른 view에 갔다가 다시 돌아오는 상황 에 해주고 싶은 처리는 이 메서드 내부에 작성해주면 됩니다.
  • viewWillAppear와 viewDidAppear사이에 constraint와 layout이 적용된다.

4. viewDidAppear

  • window 의 root view가 View 계층으로 더해진 직후 호출되는 메서드 입니다.
  • View가 나타났다는 것을 컨트롤러에게 알리는 역할을 합니다. 또한 화면에 적용될 애니메이션을 그려줍니다.

5. viewWillDisappear

  • window 의 root view가 View 계층에서 제거되기 직전 호출되는 메서드입니다.
  • View가 삭제되려고 하는 것을 ViewController에 통지합니다.

6. viewDidDisappear

  • window 의 root view가 View 계층에서 제거된 직후 호출되는 메서드 입니다.
  • view가 제거되었음을 알려줍니다.


참조 및 이미지 출처
https://developer.apple.com/documentation/uikit/uiviewcontroller
https://zeddios.tistory.com/43
https://o-o-wl.tistory.com/43
https://jinnify.tistory.com/20

profile
iOS시작~

0개의 댓글