ios - SwiftUI 从选择器的字符串结果中设置绑定(bind)

标签 ios swiftui picker

我正在撕扯头发,试图弄清楚如何在我的 SwiftUI View 中绑定(bind)选择的值:

选择器需要绑定(bind)到标签返回的 Int。我需要将此 Int 转换为字符串并设置绑定(bind)。如何?

struct ContentView: View {

   @Binding var operatorValueString:String

    var body: some View {

         Picker(selection: queryType, label: Text("Query Type")) {
             ForEach(0..<DM.si.operators.count) { index in
                 Text(DM.si.operators[index]).tag(index)
             }
         }.pickerStyle(SegmentedPickerStyle())
    }
}

如何以及在哪里设置我的 operatorValueString ?

operatorValueString = DM.si.operators[queryType] //won't compile.

最佳答案

You can achieve the result, using your own custom binding that sets the string, whenever the picker's selection changes:

struct ContentView: View {
    @State private var operatorString = ""

    var body: some View {
        VStack {
            Subview(operatorValueString: $operatorString)
            Text("Selected: \(operatorString)")
        }
    }
}

struct Subview: View {
    @Binding var operatorValueString: String
    @State private var queryType: Int = 0

    let operators = ["OR", "AND", "NOT"]

    var body: some View {

        let binding = Binding<Int>(
            get: { self.queryType },
            set: {
                self.queryType = $0
                self.operatorValueString = self.operators[self.queryType]
            })

        return Picker(selection: binding, label: Text("Query Type")) {
            ForEach(operators.indices) { index in
                Text(self.operators[index]).tag(index)
            }
        }.pickerStyle(SegmentedPickerStyle())
    }
}

关于ios - SwiftUI 从选择器的字符串结果中设置绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57696082/

相关文章:

ios - SwiftUI NavigationView navigationBarTitle LayoutConstraints 问题

SwiftUI 分段选取器在单击时不会切换

jQuery 插件 : Colorpicker

java - 您可以将 Oracle ADF 与 IntelliJ Idea 结合使用吗?

ios - 使用 Mobile Hub 测试适用于 iOS 的 Amazon SNS 但无法使其正常工作

swift - 如何根据参数过滤 Firebase 事件?

swift - 如何通过 SwiftUI Tap Gesture 使用键修饰符(选项/命令/控制)

类似于 iOS 日期选择器的 Android 选择器/列表

ios - 以编程方式创建的六边形图像所需的边框

当 Podfile 具有 'use_frameworks!' 选项时,iOS 应用程序崩溃