使用导航链接时出现Swiftui嵌套导航问题



我的swiftui应用程序结构看起来像这个

  • 导航视图(包含作为列表视图的平台视图(
  • 选择列表项后,导航链接将指向具有三个选项卡的选项卡视图(默认的第一个选项卡(

当我在选项卡视图屏幕中使用唯一的独立导航链接以编程方式指向另一个屏幕时,它会成功地导航到提到的目的地,但我的绑定无法返回到上一个屏幕。

父视图

@State var showCameraPreviewView : Bool = false 
ZStack{
Button("Show camera") {
showCameraPreviewView = true
}
NavigationLink(destination: CameraView(showCameraPreviewView: $showCameraPreviewView),isActive: $showCameraPreviewView){
EmptyView()
}
}

子视图

@Binding var showCameraPreviewView 
Button("Assume capture success"){
self.showCameraPreviewView = false
}

在目的地中将showCameraPreviewView绑定切换为false不会使我返回到当前屏幕。看起来很直接,但不起作用!我做错了什么?

我可以重现你的问题,很奇怪。。。似乎CCD_ 1的更改未被接受,因为视图仍然可见。但我找到了dismiss:的解决方法

适用于iOS 14的编辑:

struct ChildView: View {

@Environment(.presentationMode) var presentationMode
@Binding var show: Bool

var body: some View {
Button("Assume capture success"){
show = false
presentationMode.wrappedValue.dismiss()
}
}
}

最新更新