如何在 SwiftUI 的上一个屏幕中更新值?

How to update value in previous screen in SwiftUI?

我正在从一个屏幕导航到另一个屏幕并使用 @Binding 传递数据,但我也在尝试在第二个屏幕更新时将值更新回第一个屏幕。

struct FirstView: View {
    @State private var valueToPass : Int = 0
    var body: some View {
        VStack {
            Button(action: {
                self.valueToPass += 1
            }) {
                Text("Increase value \(self.valueToPass)")
            }
        }
        .overlay(
            SecondView(valueToGet: $valueToPass)
        )
    }
}
      
struct SecondView: View {
    @Binding var valueToGet: Int
    var body: some View {
        VStack {
            Text("Show value \(valueToGet)")
                .padding(.top, 50)
        }
    }
}

我想在不关闭叠加层的情况下更改 SecondView 中的值,需要更新第一个视图中的值。

我不确定我应该如何反过来做。

你很接近。

只需在第二个视图中添加一个按钮来增加值

struct SecondView: View {
    
    @Binding var valueToGet: Int
    
    var body: some View {
        VStack {
            
            Text("Show value \(valueToGet)")
            Button("Increment") {
                valueToGet += 1
            }
        }
    }
}