Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Refactoring
- UITextView
- 리펙토링
- swiftUI
- SWIFT
- Human interface guide
- 리팩토링
- uiscrollview
- 애니메이션
- rxswift
- collectionview
- HIG
- RxCocoa
- ribs
- UICollectionView
- 클린 코드
- Xcode
- combine
- map
- Observable
- uitableview
- MVVM
- swift documentation
- ios
- 스위프트
- 리펙터링
- Clean Code
- tableView
- clean architecture
- Protocol
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - SwiftUI] onAppear 호출 타이밍 본문
onAppear 호출 타이밍
- UIViewController의 viewWillAppear과 viewDidAppear 중간에 호출됨
- ViewController가 SwiftUI의 뷰를 가지고 있는 상태에서 각 print문을 넣어서 출력해보면, SwiftUI의 onAppear가 중간에 불리는 것을 확인
viewWillAppear
onAppear // 중간에 호출
viewDidAppear
코드)
class ViewController: UIViewController {
...
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("viewWillAppear")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("viewDidAppear")
}
}
...
struct MySwiftUIView: View {
var body: some View {
VStack {
Text("Hello, SwiftUI!")
.font(.largeTitle)
.padding()
}
.onAppear {
print("onAppear")
}
.onDisappear {
print("onDisappear")
}
}
}
- onAppear호출 타이밍은 viewWillAppear와 viewDidAppear 중간에 불리고, 다른 상황에서도 동일한 타이밍에 호출
- 백그라운드 -> 포그라운드 진입 시 호출 안됨
- push, present되었다가 뒤로 오는 경우 모두 호출됨
* 다음에 읽어보면 좋은 글: 뷰가 업데이트 될 때 init 호출 타이밍 (#ObservedObject, @StateObject, @State)
* 전체 코드: https://github.com/JK0369/ExOnAppear
'iOS 응용 (SwiftUI)' 카테고리의 다른 글
Comments