본문 바로가기

iOS 앱 개발자 프로젝트/iOS 입문

[iOS] ViewController - Lifecycle Method

2024년 4월 2일 화요일

 

ViewController의 생명주기(Lifecycle)는 앱의 UI와 상호작용을 관리하는 데 중요한 역할을 합니다. ViewController가 생성되고 화면에 나타나는 순간부터 사라질 때까지의 일련의 이벤트로 구성되는 Lifecycle 과정에서 여러 메서드가 호출되며, 개발자는 이 메서드들을 오버라이드하여 특정 작업을 수행할 수 있습니다.

 

3월 22일 내용과 일부 중복되는 부분이지만,

ViewController를 제대로 이해하기 위한 핵심 내용이기에 쉽게 풀어 다시 한 번 정리해 봅니다. 


 

  • init: ViewController의 인스턴스가 생성될 때 호출
  • loadView: ViewController가 관리하는 뷰가 로드될 때 호출. 뷰의 로딩을 시작하는 단계
  • viewDidLoad: 뷰의 로딩이 완료되었을 때 호출. 초기 설정이나 데이터 로딩 등 한 번만 실행되어야 하는 작업 처리
  • viewWillAppear: 뷰가 화면에 나타나기 직전에 호출. 뷰가 나타날 때마다 필요한 업데이트 수행.
  • viewDidAppear: 뷰가 화면에 나타난 직후에 호출. 애니메이션 시작 또는 중요한 정보 표시 등의 작업 수행
  • viewWillDisappear: 뷰가 화면에서 사라지기 직전 호출
  • viewDidDisappear: 뷰가 화면에서 완전히 사라진 후 호출

 

App의 Lifecycle (iOS 13.0 +) ▽  

 

 

 

 

코드 예시 ▽

import UIKit

class MyViewController: UIViewController {

    // 뷰가 메모리에 로드될 때 호출됩니다.
    override func viewDidLoad() {
        super.viewDidLoad()
        // 여기에 초기 설정 코드를 작성하세요.
        print("viewDidLoad 호출됨")
    }

    // 뷰가 화면에 나타나기 직전에 호출됩니다.
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        // 뷰가 나타나기 전에 필요한 작업을 수행하세요.
        print("viewWillAppear 호출됨")
    }

    // 뷰가 화면에 나타난 직후에 호출됩니다.
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        // 뷰가 나타난 후 수행할 작업을 여기에 작성하세요.
        print("viewDidAppear 호출됨")
    }

    // 뷰가 화면에서 사라지기 직전에 호출됩니다.
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        // 뷰가 사라지기 전에 수행할 작업을 여기에 작성하세요.
        print("viewWillDisappear 호출됨")
    }

    // 뷰가 화면에서 사라진 직후에 호출됩니다.
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        // 뷰가 사라진 후 수행할 작업을 여기에 작성하세요.
        print("viewDidDisappear 호출됨")
    }
}

 

 


 

오버라이드 (override)
: 슈퍼클래스로부터 상속받은 메서드, 프로퍼티들을 재정의하는 키워드