Я устал создавать многокомпонентное средство выбора на основе решения user3441734 для динамического средства выбора. Этот сборщик находится в собственном файле .swift. Я не могу понять, как сохранить выделение в переменной, чтобы снова получить к нему доступ из другого представления.
Вот мой код. Я пометил свое неправильное решение значком ???? и сообщением об ошибке ниже.
import SwiftUI
struct DynamicPicker: View {
@ObservedObject var model = Model()
// var to store the selection
@State var selection: String = ""
var body: some View {
VStack {
GeometryReader { geometry in
HStack {
Picker(selection: self.$model.selectedManufacturer, label: Text("")){
ForEach(0 ..< self.model.manufacturerNames.count){ index in
Text(self.model.manufacturerNames[index])
}
}.labelsHidden()
.frame(maxWidth: geometry.size.width * CGFloat(0.3333))
.clipped()
Picker(selection: self.$model.selectedStock, label: Text("")){
ForEach(0 ..< self.model.stockNamesCount){ index in
Text(self.model.stockNames[index])
}
}
.id(self.model.id)
.labelsHidden()
.frame(maxWidth: geometry.size.width * CGFloat(0.6666))
.clipped()
}
}
// Show selection
Text("\(self.model.manufacturerNames[model.selectedManufacturer])-\(self.model.stockNames[model.selectedStock])")
// Save selection to variable ????
selection = "\(self.model.manufacturerNames[model.selectedManufacturer])-\(self.model.stockNames[model.selectedStock])"
}
}
}
???? Тип '()' не может соответствовать 'View'; только типы struct / enum / class могут соответствовать протоколам