首先,谢谢你抽出时间来看这个,伙计们!
我是一位白天盲人/视障人士的老师,并且刚刚开始涉足代码,以创造一些简洁的工具来推进我们的职业。
我正在尝试构建的第一个应用程序是一个评估工具。我已经能够使用形式,与匹克和切换,以相当成功地完成这一过程中的许多学习。
我遇到的最大问题是在记录他们当前的视觉诊断时。我们的大多数孩子都有多重诊断,所以我需要一种方法,让用户为每个孩子添加所需的数量。在@aheze在https://stackoverflow.com/a/69137065/18850386中的回复和一些修改的帮助下,我已经能够使用ForEach语句创建我想要的按钮,但是所选的Picker值是绑定在一起的。这是我目前的代码和图片。
@State var eyeConditions = [""]
@State var eyeConditionsList = ""
var body: some View {
NavigationView {
Form {
Section(header: Text("Active Eye Condition(s)")) {
ForEach(eyeConditions.indices, id: \.self) { index in
Picker(
selection: $eyeConditionsList,
label: Text("Selected Condition:"),
content: {
Text("").tag("1")
Text("Amblyopia").tag("2")
Text("Aphakia").tag("3")
Text("Astigmatism").tag("4")
Text("Bulls Eye Maculopathy").tag("5")
Text("Cataract").tag("6")
Text("Coloboma").tag("7")
Text("Color Blindness").tag("8")
Text("Convergence Insufficiency").tag("9")
Text("Corneal Scarring").tag("10")
})
}
Button(action: {
eyeConditions.append("")
}) {
Image(systemName: "plus.circle")
.foregroundColor(Color.blue)
}
}
}
.navigationBarTitle("Visual Information")
}
}我的问题是,如何使每个新创建的Picker值不相互绑定,并显示为单独的值?
谢谢你,我真的很感激你的时间和帮助!
发布于 2022-04-18 17:21:03
eyeConditionsList声明为数组
@State var eyeConditionsList = "“eyeConditionsList追加一项
按钮(动作:{ eyeConditions.append("") eyeConditionsList.append("")selection绑定到适当的索引
选择器(选择:$eyeConditionsListindex )但实际上,您只需要一个@State属性
@State var eyeConditions = [""]
var body: some View {
NavigationView {
Form {
Section(header: Text("Active Eye Condition(s)")) {
ForEach(eyeConditions.indices, id: \.self) { index in
Picker(
selection: $eyeConditions[index],
label: Text("Selected Condition:"),
content: {
Text("").tag("1")
Text("Amblyopia").tag("2")
Text("Aphakia").tag("3")
Text("Astigmatism").tag("4")
Text("Bulls Eye Maculopathy").tag("5")
Text("Cataract").tag("6")
Text("Coloboma").tag("7")
Text("Color Blindness").tag("8")
Text("Convergence Insufficiency").tag("9")
Text("Corneal Scarring").tag("10")
})
}
Button(action: {
eyeConditions.append("")
}) {
Image(systemName: "plus.circle")
.foregroundColor(Color.blue)
}
}
}https://stackoverflow.com/questions/71914811
复制相似问题