首页 > 解决方案 > 在 SwiftUI 中绑定两个选择器并具有来自两者的唯一值

问题描述

我正在尝试创建 2 个选择器,一个在根据第一个选择器的索引更新第二个选择器的值变化时...

当我更改第一个选择器的值时,第二个选择器会相应更新。

问题?当我从第二个选择器中选择一个项目时,我得到了index out of range错误。错误很明显,第二个选择器中的项目比第一个多,它们都绑定到同一个数据集。

因此,当第一个选择器中的 $selectedSubsection 发生变化时,第二个选择器获取相应的数据。

现在,我如何允许第二个选择器对新内容进行一些选择,以便 $selectedSubsection 不会改变?

Picker(selection: $selectedSubsection, label: Text("Subsection")) {

ForEach(0 ..< self.subsections.count) {

Text(self.subsections[$0].name)

}}

Picker(selection: $selectedSubsection, label: Text("Subsection")) {

ForEach(0 ..< self.subsubsections.count) {

if self.subsubsections[$0].belongs_to == self.subsections[self.selectedSubsection].id

{

Text(self.subsubsections[$0].details)

}

}}

另外,我如何从第二个选择器中获取价值?

标签: iosswiftswiftui

解决方案


推荐阅读