我看到“ContentView 出现了!”仅第一次消息/onAppear
似乎被称为 ones
是否可以通过任何其他方式检测返回根?
import SwiftUI
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!")
}
}
}
最佳答案
NavigationView
在 view
之间持续存在。因此,当您在它们之间推送和弹出时,它实际上并不是 appear
和 disappear
。所以你需要在 NavigationView 的内容 上设置 modifier
,NOT NavigationView
它自己:
NavigationView {
NavigationLink(destination: DetailView()) { Text("Hello World") }
.onAppear { print("ContentView appeared!") }
.onDisappear { print("ContentView disappeared!") }
}
关于ios - 如何检测返回到 SwiftUI 中 NavigationView 的 Root View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59007068/