4.12 视图生命周期出现与消失事件
UIKit 有 viewDidAppear()
和 viewDidDisappear()
两个周期事件,SwiftUI 也有对应的两个事件 onAppear()
和 onDisappear()
。我们可以把代码写在这两个事件里,SwiftUI 会在事件发生的时候执行它们。
举个例子,在导航视图里添加 onAppear()
和 onDisappear()
两个事件,触发的时候则打印信息。代码如下:
struct ContentView : View {
var body: some View {
NavigationView {
NavigationButton(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!")
}
}
}
在模拟器中运行该代码,然后可以在 Xcode 控制台中看到对应打印信息。
目前的测试版 onAppear()
工作得很好,但是 onDisappear()
貌似不太灵。