SwiftUI: программно устанавливаемое значение для выбора - PullRequest
1 голос
/ 17 февраля 2020

Все примеры на Inte rnet показывают следующий тип кода для реализации средств выбора:

struct MyView: View 
{
   var colours = ["Red", "Green", "Blue"]
   @State private var myColourIndex = 1
   @State private var myColour = "Green"
   var body: some View 
   {
       VStack 
       {
           Picker(selection: $myColourIndex, label: Text("Choose a colour")) 
           {
               ForEach(0 ..< colours.count) 
               {
                   Text(self.colours[$0])
               }
           }
       }
   }
}

Это, вероятно, очень очевидно, но мой вопрос заключается в том, как настроить раздел на основе строковое значение хранится в myColour, а не в индексе?

1 Ответ

1 голос
/ 17 февраля 2020

На самом деле, почти то же самое (протестировано и работает с Xcode 11.2 / iOS 13.2):

struct MyView: View
{
   var colours = ["Red", "Green", "Blue"]
   @State private var myColourIndex = 1
   @State private var myColour = "Green"

   var body: some View {
       VStack {
           Picker("Choose a colour", selection: $myColour) {
               ForEach(colours, id: \.self) { colour in
                   Text(colour)
               }
           }
       }
   }
}
...