Hello all,
I am trying to make a picker (named Letters in the below example) with variable data source (lettersArray), where these data depends on selections of other picker (Numbers), I tried that through the didSet as per the below example, but it crashes. Any advice in that!
import SwiftUI
class Model: ObservableObject, Identifiable {
var lettersArray = ["A", "B", "C"]
var numArray = ["0", "1", "2", "3"]
@Published var lettersIndx = 0
@Published var numIndex = 0 {
didSet{
switch numIndex {
case 0:
lettersArray = ["A", "B", "C"]
case 1:
lettersIndx = 0
lettersArray = ["A"]
case 2:
lettersIndx = 1
lettersArray = ["B", "C"]
default:
lettersArray = ["A", "B", "C"]
}
}
}
}
struct ContentView: View {
@ObservedObject var model = Model()
var body: some View {
VStack{
Spacer()
Picker("Letters", selection: $model.lettersIndx) {
ForEach(model.lettersArray.indices, id: \.self) { (index: Int) in
Text(self.model.lettersArray[index])
}
}.pickerStyle(WheelPickerStyle())
Spacer()
Picker("Numbers", selection: $model.numIndex) {
ForEach(model.numArray.indices, id: \.self) { (index: Int) in
Text(self.model.numArray[index])
}
}
.pickerStyle(WheelPickerStyle())
Spacer()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}