我想从模态内部进入一个新的视图。
目前,我有默认视图。然后,我介绍我的模态。在该模式下,我可以关闭它,但是我还有另一个按钮,希望将我带到另一个视图。 (NewView)
这可能吗?
默认视图:
import SwiftUI
struct ContentView: View {
@State private var showModal = false
var body: some View {
Button("Show Modal") {
self.showModal.toggle()
}.sheet(isPresented: $showModal) {
ModalView(showModal: self.$showModal)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
模式视图:
struct ModalView: View {
@Binding var showModal: Bool
var body: some View {
VStack (spacing: 30){
Text("My Modal View")
.font(.title)
.padding()
Button("Close modal") {
self.showModal.toggle()
}
Button("Close modal and go to a new view") {
}
}
}
}
NewView:
struct NewView: View {
var body: some View {
Text("My New View")
}
}
答案 0 :(得分:1)
我以两种不同的方式理解了您的问题,幸运的是,我有两种解决方案。
如果需要以下流程:ViewA->以模态打开ViewB->在ViewB中以NavigatedView形式打开ViewC
那么您只需更改ModalView
即可
struct ModalView: View {
@Binding var showModal: Bool
var body: some View {
NavigationView {
VStack (spacing: 30){
NavigationLink(destination: NewView()) {
Text("Take me to NewView")
}
Text("My Modal View")
.font(.title)
.padding()
Button("Close modal") {
self.showModal.toggle()
}
Button("Close modal and go to a new view") {
}
}
}
}
}
但是,如果您的意思是ViewA->以Moda形式打开ViewsB-> ViewB然后告诉ViewA导航到ViewC
然后请参考此链接,有人早些时候问了这个问题,我提供了解决方法
SwiftUI transition from modal sheet to regular view with Navigation Link