7-1. 개요
View Life Cycle이란 말그대로 뷰의 생명주기라는 뜻인데 뷰가 호출돼서 메모리에 적재되었다가, 뷰가 메모리에서 해제될 때 까지의 과정을 생명주기라고 한다.
Swift의 UI 프레임워크인 UIKit과 Swift UI에는 각각 다른 방식의 생명주기를 통해 관리를 하는데 오늘은 이 2가지 프레임워크의 생명주기를 공부하고자 한다.
7-2. UIKit View Life Cycle
-loadView
화면의 띄울 View를 만드는 메서드로 View를 만들고 메모리에 올리는 역할을 한다.
일반적으로 사용자는 이 메서드를 직접 호출하면 안된다고 개발 문서에는 나와있다.
-viewDidLoad
loadView를 통해 메모리에 성공적으로 로드가 되면 호출되는 함수이다.
화면이 처음 만들어질 때 한 번만 실행되어서, 초기 화면을 구성하는 함수들이 여기서 실행이 된다.
-viewWillAppear
view가 이제 기기에 표시되기 직전에 호출되는 함수이다.
viewDidLoad와 다른 점은 메모리에서 완전히 해제되지 않으면 계속 호출이 될 수 있다는 점이다.
예를 들어, 네비게이션 뷰를 통해 다른 뷰를 호출했다가 다시 해당 뷰로 돌아오면, viewDidLoad는 호출되지 않지만 viewWillAppear은 호출이 된다.
-viewDidAppear
view가 기기에 표시된 직후에 호출되는 함수이다.
-viewWillDisappear
view가 기기에서 사라지기 직전에 호출되는 함수이다.
-viewDidDisappear
view가 기기에서 사라진 진후에 호출되는 함수이다.
-viewDidUnload
view가 메모리에서 완전히 해제될 떄 호출되는 메서드이다.
현재는 더 이상 사용되지 않는다.
view가 메모리에서 완전히 해제되고 다시 호출되면 그 때는 loadView부터 다시 실행된다.
7-3. SwiftUI View Life Cycle
SwiftUI의 view 생명주기는 UIKit보다 조금 더 단순한 편이다. 기기의 화면에서 view가 표시될 때 수행하는 onAppear과 화면에서 사라질 때 보여지는 onDisAppear 2가지가 존재한다.
import SwiftUI
@main
struct CombineAlamofireApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.onAppear {
print("view가 화면에 표시될 때 실행")
}
.onDisappear {
print("view가 화면에서 사라질 때 실행" )
}
}
}
}
-onAppear
view가 기기에 표시될 때 실행되는 메서드로 perform 파라미터 안에 수행할 함수를 입력하면 view가 표시될 때 해당 함수가 실행된다.
UIKit으로 따지면 viewDidLoad가 아닌 viewDidAppear과 동일한 구간에서 수행하는 함수이다.
-onDisappear
view가 기기에서 사라질 떄 실행되는 메서드로 perform 파라미터 안에 수행할 함수를 입력하면 view가 사라질 때 해당 함수가 실행된다.
UIKit으로 따지면 viewDidDisappear과 호출시점이 같다.
'Swift' 카테고리의 다른 글
9. 프로세스와 스레드 (0) | 2022.08.25 |
---|---|
8. [Swift] App’s Life Cycle(앱 생명주기) (0) | 2022.08.17 |
6. Swift 프로퍼티의 종류 (0) | 2022.08.03 |
5. iOS 강한참조(strong), 약한 참조(weak), 미소유 참조(unowned (0) | 2022.07.28 |
4. iOS GC와 ARC의 차이점, 순환참조 (2) | 2022.07.19 |