系统: Mac OS 10.15.2, XCode 11.3,swift 5.0
写作时间:2020-01-09
说明
SwiftUI在body的闭包只执行一次,等价于UIKit的viewDidLoad()
方法。
UIKit的 viewDidAppear()
和 viewDidDisappear()
等价于SwiftUI的方法onAppear()
和 onDisappear().
例子如下:
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: DetailView()) {
Text("Hello World")
}
}
}.onAppear {
print("ContentView appeared!")
}.onDisappear {
print("ContentView disappeared!")
}
}
}
struct DetailView: View {
var body: some View {
VStack {
Text("Second View")
}.onAppear {
print("DetailView appeared!")
}.onDisappear {
print("DetailView disappeared!")
}
}
}
参考
https://www.hackingwithswift.com/quick-start/swiftui/how-to-respond-to-view-lifecycle-events-onappear-and-ondisappear