Недавно я изменил код средства выбора в SwiftUI, чтобы использовать перечисление CaseIterable, а не массив элементов.
Вот перечисление:
enum ReturnTypes : String, CaseIterable {
case Scaler
case Vector
case Matrix
}
Вот код средства выбора:
NavigationView {
Form {
Picker("Return Type:", selection: $task.returnType) {
ForEach(ReturnTypes.allCases, id: \.self) { type in
Text(type.rawValue)
}
}
}
}
Когда я ранее имел данные в массиве и использовал
let returnTypes = ["Scaler", "Vector", "Matrix"]
...
Picker("Return Type:", selection: $task.returnType) {
ForEach(0..<returnTypes.count, id: \.self) {
Text(returnTypes[$0])
}
}
, текущее значение task.returnType отображалось в строке выбора формы рядом с шевроном. Используя перечисление, task.returnType НЕ отображается рядом с шевроном, и когда я перехожу к представлению выбора средства выбора, ничего не проверяется, и даже если я выберу элемент, у меня все равно ничего не будет отображаться рядом с шевроном. Кто-нибудь еще сталкивался с этой проблемой?