使用导航时 Swiftui 嵌套导航问题 link

Swiftui nested navigation issue while using navigation link

我的 swiftui 应用程序结构如下所示

当我在选项卡视图屏幕内使用单独的独立导航 link 以编程方式定向到另一个屏幕时,它成功导航到提到的目的地,但我的绑定无法返回到上一个屏幕.

父视图

@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 不会让我返回到当前屏幕。 看起来直截了当,但不起作用!我做错了什么吗?

我可以重现您的问题,很奇怪...似乎 showCameraPreviewView 的更改未被接受,因为视图仍然可见。但是我找到了 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()
        }
    }
}