gpt4 book ai didi

ios - 在 SwiftUI 的 Picker 中添加新元素

转载 作者:行者123 更新时间:2023-12-01 19:39:03 26 4
gpt4 key购买 nike

我找不到如何在 SwiftUI 的选取器 View 中添加一些元素,在我的示例中,我想在单击按钮时在选取器中添加“Z”值。

struct ContentView: View {
@State var values: [String] = ["A", "B", "C"]

@State private var selectedValue = 0

var body: some View {
NavigationView {
Form {
Section {
Picker(selection: $selectedValue, label: Text("Value")) {
ForEach(0 ..< values.count) {
Text(self.values[$0])

}
}
}
Button(action: {
self.values.append("Z")
}, label: {
Text("Add")
})
}.navigationBarTitle("Select a value")

}
}

当我单击按钮时,Z 被添加到“值”数组中,但 Picker 没有刷新。

谢谢 :)

最佳答案

您必须通过 id 识别值让 SwiftUI 使其更改可检测:

ForEach(0 ..< self.values.count, id: \.self) {
Text(self.values[$0])
}

这样 SwiftIU 知道它应该在更改时重建选择器。

提示 :您可以像这样直接使用元素:
ForEach(values, id: \.self) {
Text($0)
}

不要忘记更改 selectedValue与数据源匹配的类型和值 中频您遵循了上面的提示:
@State private var selectedValue = "A"

关于ios - 在 SwiftUI 的 Picker 中添加新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57967784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com