Как сделать автоматическое изменение поля Text при выборе определенного значения Picker
Подскажите, пожалуйста, как сделать так чтобы при выборе определенного значения из поля Picker автоматически менялся результат в поле Text. Написал код, но выдает ошибку Type '()' cannot conform to 'View'. Вот код:
import SwiftUI
struct ContentView: View {
@State private var years: [String] = ["2010", "2011", "2012"]
@State private var selectedYearIndex = 2
@State private var resultText = ""
var body: some View {
switch selectedYearIndex {
case 0:
self.resultText = "Hello"
case 1:
self.resultText = "Hi"
case 2:
self.resultText = "Bye"
default:
self.resultText = "No"
}
VStack {
Text("Result Text:")
Spacer()
Text("\(resultText)")
Spacer()
Picker("Choose a Year", selection: $selectedYearIndex) {
ForEach(0..<years.count) {
Text("\(years[$0])").font(.title)
}
}
}
}
}
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Могу предложить такой вариант решения:
struct ContentView: View {
@State private var years: [String] = ["2010", "2011", "2012"]
let strings: [String] = ["Hello", "Hi", "Bye"]
@State private var selectedYear = "2010"
var body: some View {
VStack {
Picker("Please choose a year", selection: $selectedYear) {
ForEach(years, id: \.self) {
Text($0)
}
}
Text("You selected: \(strings[years.firstIndex(of: selectedYear) ?? 0])")
}
}
}
у вас ошибка потому что нельзя размещать такого рода куски кода который возвращает какую-то вьюху.