可以使用SwiftUI中的@State属性和NavigationLink来切换视图,不需要NavigationView。
示例代码:
struct ContentView: View { @State var showDetail = false
var body: some View {
VStack {
Button("Show Detail") {
self.showDetail.toggle()
}
NavigationLink(destination: DetailView(), isActive: $showDetail) {
EmptyView()
}
}
}
}
struct DetailView: View { var body: some View { Text("Detail View") } }
这里我们使用@State属性来控制是否展示DetailView。在按钮上使用toggle()方法,当点击按钮时将showDetail属性更改为true或false。在Vstack内使用NavigationLink,将showDetail属性绑定到isActive参数上,并在destination参数中指定DetailView。EmptyView()仅仅是一个占位符,以便NavigationLink正确工作。