【问题标题】:SwiftUI: Programmatically setting value for PickerSwiftUI:以编程方式设置 Picker 的值
【发布时间】:2020-02-17 08:42:29
【问题描述】:

Internet 上的所有示例都显示了以下类型的用于实现选择器的代码:

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 中的字符串值而不是索引来设置部分?

【问题讨论】:

    标签: swiftui picker


    【解决方案1】:

    实际上,几乎相同(测试并适用于 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)
                   }
               }
           }
       }
    }
    

    【讨论】:

    • 有没有办法在不使用后退按钮的情况下以编程方式关闭选择器?
    猜你喜欢
    • 2011-02-14
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 2014-10-13
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多