【发布时间】:2021-01-23 09:10:53
【问题描述】:
在 SwiftUI 中找不到与此问题相关的任何内容。
我目前有三个视图,RootView、DetailView1 和 DetailView2。 RootView 将具有一个按钮来推送和显示 DetailView1,在 DetailView1 内部将有一个 NavigationLink 将 DetailView1 关闭到 RootView 并推送 DetailView2。
struct DetailView1: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var body: some View {
VStack {
NavigationLink(destination: DetailView2()) {
Text("Tap to dismiss DetailView and show DetailView2")
.onTapGesture {
self.presentationMode.wrappedValue.dismiss()
}
}
}
}
}
struct DetailView2: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var body: some View {
Button(
"This is DetailView2",
action: { self.presentationMode.wrappedValue.dismiss() }
)
}
}
struct RootView: View {
var body: some View {
VStack {
NavigationLink(destination: DetailView1())
{ Text("This is root view. Tap to go to DetailView") }
}
}
}
struct ContentView: View {
var body: some View {
NavigationView {
RootView()
}
}
}
预期行为: 用户在 DetailView1 中按下 NavigationLink,视图被解除到 RootView 并且 DetailView2 被向上推。
当前行为: 用户在DetailView1中按下NavigationLink,视图被解除到RootView,DetailView2没有被推送。
【问题讨论】: