[iOS] ViewController

RudinP·2024년 2월 6일
0

Study

목록 보기
135/227

ViewController의 분류

Content VC

  • 테이블뷰, 버튼, 이미지 뷰 등을 추가해서 화면을 구성하는 뷰 컨트롤러
  • 하나의 화면을 구성하는 뷰 컨트롤러

Container VC

  • 하나 이상의 뷰 컨트롤러를 차일드로 추가해서 관리
  • 차일드 뷰 간의 화면 전환을 처리
  • 네비게이션, 탭바, 스플릿 뷰 컨트롤러 등

UIViewController

  • 서브클래싱 한 다음 필요한 기능을 추가하는 방식.
    • 뷰 컨트롤러는 UIViewController 클래스로 구현한다.
    • 화면을 구현할 때는 새로운 클래스를 만들고 UIViewController를 상속한 다음 원하는 기능을 추가하는 방식

LifeCycle

init

  • 자동으로 생성, 호출
    • 직접 생성하는 경우는 거의 없음

Load

  • 메모리에 로드(저장) 되었지만 화면에 표시된 상태는 아님.
    • window가 관리하는 뷰 계층에 추가되어야 함.

Appearing

  • rootView가 view계층에 추가되기 전 단계

Appeared

  • view계층에 추가되고 실제로 화면에 표시된 상태

Disappearing

  • 현재 표시중인 rootView 가 view 계층에서 제거

Disappeared

  • 제거된 후

Deinitialization

  • viewController가 사라진다면 소멸자 호출
  • 메모리에서 제거
  • 다시 표시된다면 Appearing 상태가 됨.

ViewController LifeCycle이벤트의 처리 방식

AppDelegate, SceneDelegate

  • App과 Scene의 LifeCycle 처리는 Delegate 형식으로 처리함

Call-back

  • ViewController는 Call-back 방식으로 처리함.
    • 자기 자신의 메소드를 호출하는 방식
      viewDidLoad() : rootView가 메모리에 로드되면 호출
  • LifeCycle 구현할 때는 반드시 상위구현을 호출해야 함(super.)
profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글