首页 > 解决方案 > 使用 Swift UI 更新滑块值

问题描述

我正在尝试将数据从一个视图传递到另一个视图并更新滑块。

我知道您可以使用 @State 和 @Binding 属性包装器来执行此操作,但它似乎没有更新。

在我的内容视图中,我有:

@State var startNumber: Double = 0
@State var endNumber: Double = 5000

Slider(value: $startNumber, in: 0...10000, step: 0.1)

在我的第二种观点中,我有:

@Binding var startNumber: Double
@Binding var endNumber: Double
@State var number: String = ""
@State var number2: String = ""

FirstResponderTextField(text: $number2, placeholder: "\(endNumber)")
Button(action: {
            startNumber = Double(number) ?? 0
            endNumber = Double(number2) ?? 0
            print("\(startNumber)")
            print("\(number)")
            print("\(endNumber)")
            print("\(number2)")
            self.presentationMode.wrappedValue.dismiss()
        }

我可以看到该值不会更新 @Binding,因为它保持在 0。

所以我什至无法更新变量,有人知道为什么吗?

然后我了解要在内容视图上显示的值,我需要在 Hstack 之后调用 onAppear 以显示更新的值?

HStack {

}onAppear {
  self.startNumber = $startNumber 
}

但是,这似乎也不起作用?

标签: swiftuiwrapper

解决方案


推荐阅读