loadView()
View를 로드한다 =⇒ View를 메모리에 올리는 함수
뷰 컨트롤러는 메모리에 올라온 후, 인스턴스 메서드인 loadView()를 통해 View(화면)을 메모리에 올린다.
뷰 컨트롤러의 IUO 저장 프로퍼티로 선언되어 있는 View의 요청으로 이 메서드가 호출되면 View를 로드하거나 생성하여 해당 저장 프로퍼티에 할당한다.
뷰 컨트롤러와 연결된 스토리보드(nib)가 있다면 해당 스토리보드에서 View를 로드하며, 스토리보드를 통해 View를 생성 및 초기화하는 경우 loadView() 메서드를 재정의해서는 안된다.
만약 View를 코드로 생성했다면 loadView()를 재정의해서 Viewcontroller의 View에 직접 생성한 View를 할당하면 된다.(super.loadView() 불필요)
override func loadView(){
// UIView()는 개발자가 커스텀하여 구성한 view화면이라고 가정
self.view = UIView()
}
viewDidLoad()
view did load…즉 view가 메모리에 올라온 후 호출된다.
스토리보드와 IBOutlet을 사용하여 view를 구성했다면, 스토리보드의 뷰 객체와 Viewcontroller의 코드가 연결된 후 호출된다.
뷰가 메모리에 올라온 후, 한번만 호출된다. 뷰가 메모리에서 해제되었다면 viewDidLoad()는 다시 호출된다.(뷰 컨트롤러가 메모리에서 해제되었는지 여부를 기준으로 함 → deinit )
공식문서에서 view의 추가 초기화를 진행하려면 이 viewDidLoad()를 재정의하여 사용하라고 말해주고 있다.
view가 메모리에 올라올 때 한번만 실행되므로, 처음 한번만 실행하면 되는 코드를 이곳에서 작성한다.
보통 뷰 객체의 추가 초기화 내용을 담은 함수를 따로 생성하고, viewDidLoad에서 해당함수를 호출하는 방식을 많이 사용함
viewWillAppear
view가 화면에 나타나기 전에 호출된다.
ViewController가 메모리에 올라올 때, 한번만 실행되는 viewDidLoad()와는 다르게 화면을 띄워줄때마다 호출된다. (다른 뷰컨트롤러를 보다가 다시 돌아오는 등..)
뷰를 띄울 때마다 특정 처리가 필요하거나, 다른 뷰에서 처리한 작업결과로 인해 뷰를 업데이트 해야 하는 경우에 사용된다.
viewDidAppear
스크린에 뷰가 나타난 후 호출된다.
뷰의 애니메이션을 시작하거나, 타이머를 시작하는 등 화면이 나타난 후 필요한 작업을 처리한다.
viewWillDisappear
스크린에서 뷰가 사라지기 전에 호출된다. 진행중인 애니메이션을 멈추거나, 타이머를 종료시키는 등의 작업을 처리한다.
viewDidDisappear
스크린에서 뷰가 사라진 후 호출된다. 단지 화면이 스크린에서 내려갔을 뿐, 메모리에서 해제된 것은 아니다.
'개발일기 > IOS' 카테고리의 다른 글
[Swift] - CollectionView 정리 (0) | 2024.03.15 |
---|---|
[Swift] - ViewController 화면전환 (0) | 2024.03.15 |
[Swift] - IOS 앱 생명주기 (0) | 2024.03.15 |
[Swift] - View와 Layer 관계 (0) | 2024.03.15 |
[Swift] - Xcoordinator 정리해보자 (0) | 2024.03.15 |