如何在 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
}
}
}
}
我正在从一个屏幕导航到另一个屏幕并使用 @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
}
}
}
}