Ios SwiftUI根据选择器的字符串结果设置绑定

Ios SwiftUI根据选择器的字符串结果设置绑定,ios,swiftui,picker,Ios,Swiftui,Picker,我正在努力找出如何在我的SwiftUI视图中绑定拾取的值: 选择器需要绑定到从标记返回的Int。我需要将这个Int转换为字符串并设置绑定。怎么做 struct ContentView: View { @Binding var operatorValueString:String var body: some View { Picker(selection: queryType, label: Text("Query Type")) {

我正在努力找出如何在我的SwiftUI视图中绑定拾取的值:

选择器需要绑定到从标记返回的Int。我需要将这个Int转换为字符串并设置绑定。怎么做

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())
    }
}
struct ContentView:View{
@绑定变量运算符ValueString:字符串
var body:一些观点{
选择器(选择:查询类型,标签:文本(“查询类型”)){

ForEach(0..只要选择器的选择发生更改,您就可以使用自己的自定义绑定来设置字符串,从而获得结果:

struct ContentView:View{
@国家私有变量运算符字符串=“”
var body:一些观点{
VStack{
子视图(operatorValueString:$operatorString)
文本(“选定:\(运算符字符串)”)
}
}
}
结构子视图:视图{
@绑定变量运算符ValueString:字符串
@国家私有变量查询类型:Int=0
让运算符=[“或”、“AND”、“NOT”]
var body:一些观点{
让绑定=绑定(
获取:{self.queryType},
设置:{
self.queryType=$0
self.operatorValueString=self.operators[self.queryType]
})
返回选择器(选择:绑定,标签:文本(“查询类型”)){
ForEach(operators.index){index in
文本(self.operators[index]).tag(index)
}
}.pickerStyle(SegmentedPickerStyle())
}
}

您是否在某个地方定义了queryType,Picker需要绑定。顺便说一句,DM.si.operators.index比count更容易使用。我不喜欢分段Picker。我必须使用一个带有PassthroughSubject发布器的ObservedObject,才能让它按我想要的方式工作。有一个示例要共享吗?这让我抓狂。这就是我最后要做的ing.似乎选择器应该有另一个绑定。不幸的是,当您返回并编辑时,这导致了一个无限循环。如何设置绑定以反映现有选择?@jimijon我不明白。导致无限循环的代码是什么?我需要在绑定中发送operatorValueString…然后我需要设置绑定但是,这意味着我需要在init中设置self.querytype,这会导致循环。我肯定缺少一些非常明显的东西。这就是我使用的: