본문 바로가기
TIL (Today I Learned)

[iOS] viewDidLoad vs loadView

by Bokoo14 2024. 5. 20.

[참고]

viewDidLoad와 loadView는 iOS 개발에서 흔히 사용하는 메서드로, 둘 다 뷰 컨트롤러의 뷰가 로드될 때 호출되지만, 그 목적과 사용 방식에는 중요한 차이가 있다. 

 

🗒️ loadView

    • 역할: 뷰 컨트롤러의 뷰 계층을 프로그래머틱하게 생성하기 위해 호출됩니다. 보통 인터페이스 빌더(스토리보드나 XIB 파일)를 사용하지 않고 뷰를 코드로 작성할 때 사용됩니다.
  • 용도: 뷰 컨트롤러의 view 프로퍼티에 직접 뷰 객체를 할당하는 데 사용됩니다. 주로 사용자 정의 뷰를 생성할 때 사용됩니다.
  • 호출 시점: 뷰 컨트롤러의 뷰가 처음 접근될 때 자동으로 호출됩니다. 기본적으로 이 메서드는 아무 작업도 하지 않으며, 사용자가 직접 구현해야 합니다.
override func loadView() {
    // 새로운 뷰를 직접 생성하여 view 프로퍼티에 할당
    let customView = UIView()
    customView.backgroundColor = .white
    self.view = customView
    print("loadView 호출됨")
}

 

 

 

🗒️ viewDidLoad

  • 역할: 뷰 컨트롤러의 뷰 계층이 메모리에 로드된 후 호출됩니다.
  • 용도: 뷰가 메모리에 로드된 후 추가적인 초기화 작업을 수행하는 데 사용됩니다. 예를 들어, 뷰의 서브뷰를 구성하거나 데이터 초기화를 할 때 주로 사용됩니다. 
  • 호출 시점: 컨트롤러의 뷰가 처음 로드될 번만 호출됩니다. 이후 뷰가 메모리에서 해제되었다가 다시 로드될 때도 호출됩니다.
override func viewDidLoad() {
    super.viewDidLoad()
    // 추가적인 초기화 작업
    print("viewDidLoad 호출됨")
    // 예: 뷰 구성, 데이터 초기화
}

 

 

 

'TIL (Today I Learned)' 카테고리의 다른 글

[TIL] Ping  (0) 2024.05.10
[CS] 클린코드  (0) 2024.02.18
[CS] 리팩토링이란  (0) 2024.02.18
[Swift] MVVM 패턴  (0) 2024.02.17
[CS] 동기(Sync), 비동기(Async)  (1) 2024.02.16