在 SwiftUI
中,当我处于代码中的 DetailView1
时,我找不到一种方法来检测用户点击导航视图的默认返回按钮。
struct RootView: View {
@State private var showDetails: Bool = false
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: DetailView1(), isActive: $showDetails) {
Text("show DetailView1")
}
}
.navigationBarTitle("RootView")
}
}
}
struct DetailView1: View {
@State private var showDetails: Bool = false
var body: some View {
NavigationLink(destination: DetailView2(), isActive: $showDetails) {
Text("show DetailView2")
}
.navigationBarTitle("DetailView1")
}
}
struct DetailView2: View {
var body: some View {
Text("")
.navigationBarTitle("DetailView2")
}
}
使用 .onDisappear
并不能解决问题,因为它的闭包在视图被弹出或者新视图被推入时被调用。
showDetails
在.onDisappear
之后才被改为false,而不是之前,因此不能用于早期返回按钮的点击检测。以防万一。 - Asperi