[iOS] ViewController Life Cycle

Jamong·2023년 1월 25일
0

iOS 알아가기

목록 보기
9/14

[패스트캠퍼스] 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online을 학습하면서 나오는 이론 내용과 공식 문서에서 필요한 내용을 발췌하여 정리한 글입니다.

Part2. Basic 2. LED 전광판 앱 만들기

보통 앱을 만들때 단일 스크린 위에서 여러개의 뷰 컨트롤러들로 화면전환이 가능전환 앱을 만든다.

앱이 복잡해질수록 컨트롤러들을 잘 관리해줘야하는데 알맞은 타이밍에 내가 원하는 코드를 작성하는 것이 중요하다.

이를 위해서 ViewController Life Cycle를 이해해야 한다.

ViewController Life Cycle

UIViewController의 객체에는 View 객체를 관리하는 메소드들이 정의되어있다.
이 메소드들은 각자 자신들이 불러져야 하는 타이밍일때 iOS 시스템에 의해 자동적으로 호출이 된다.

UIViewController의 하이클래스를 생성할 때 UIViewController 정의된 이 메소드들을 오버라이드하여 라이프사이클 상황에 맞게 적절한 로직들을 메소드에 추가할 수 있다.

시스템이 어떤 메소드를 언제 호출해야하는지 먼저 이해해야지만 그 시점에 잘 맞춰 UI의 변화나 데이터 변화를 잘 처리할 수 있다.

뷰가 보여지는 사항은 크게 4가지로 분류할 수 있다.

  • Appearing: 뷰가 화면에 나타나는 중
  • Appeard: 뷰가 화면에 나타나는게 완료 된 상태
  • Disappearing: 뷰가 화면에서 사라지는 중
  • Disappeared: 뷰가 화면에서 사라진 상태

ViewController Life Cycle Method

ViewDidLoad()

  • 뷰 컨트롤러의 모든 뷰들이 메모리에 로드됐을 때 호출
  • 메모리에 처음 로드될 때 한번만 호출
  • 보통 딱 한번 호출될 행위들을 이 메소드 안에 정의 함
  • 뷰와 관련된 추가적인 초기화 작업, 네트워크 호출과 같은 1회성 작업을 정의 함

viewWillAppear()

  • 뷰가 뷰 계층에 추가되고, 화면에 보이기 직전에 매 번 호출
    (다른 뷰로 갔다 돌아오면 재호출 된다는 의미)
  • 다른 뷰로 이동했다가 돌아오면 재호출
  • 뷰와 관련된 추가적인 초기화 작업

viewDidAppear()

  • 뷰 컨트롤러의 뷰가 뷰 계층에 추가된 후 호출된다.
  • 뷰를 나타날 때 필요한 추가 작업
  • 애니메이션을 시작하는 작업

viewWillDisappear()

  • 뷰 컨트롤러의 뷰가 뷰 계층에서 사라지기 전에 호출된다.
  • 뷰가 생성된 뒤 작업한 내용을 되돌리는 작업
  • 최종적으로 데이터를 저장하는 작업

viewDidDisappear()

  • 뷰 컨트롤러의 뷰가 뷰 계층에서 사라진 뒤에 호출
  • 뷰가 사라지는 것과 관련된 추가 작업
profile
새해 목표 : 1일 1 깃, 블로그, 프로그래머스 2문제

0개의 댓글