当我点击该选项时,选取器没有 Select 值.

什么都不会发生.

我确保标记与绑定成员的类型相同,但这无济于事.

为什么会发生这种情况,我如何才能解决这个问题?

以下是最小化的示例:

class Item: ObservableObject{
    var value:String
    init(_ value:String){
        self.value = value
    }
}


struct ItemsView: View {
    var body: some View {
        NavigationView{
            List{
                NavigationLink("Item 1"){
                    ItemView(item: Item("1"))
                }
                NavigationLink("Item 2"){
                    ItemView(item: Item("1"))
                }
            }
            .navigationTitle("Items")
        }
    }
}


struct ItemView: View {
    @ObservedObject var item:Item
    
    var body: some View {
        Form{
            Picker("Value", selection: $item.value){
                Text("2").tag("2")
                Text("1").tag("1")
            }
        }
        .navigationTitle("Title")
    }
}

struct ContentView: View {  
    var body: some View {
            ItemsView()
    }
}


不知道这是否重要(SwiftUI和Swift中的新功能),但我将它们放在四个不同的文件中……

推荐答案

应发布绑定值以将更改通知回视图.

所以解决办法就是

class Item: ObservableObject{
    @Published var value:String     // << here !!
    init(_ value:String){
        self.value = value
    }
}

使用Xcode 13.4/iOS 15.5进行测试

Swift相关问答推荐

是否可以将字典项绑定到文本字段?

更改正在进行的异步任务的完成(SWIFT并发)(&q;)?

SWIFT并发:合并Taskgroup和AsyncStream?

如何让ScrollView缩小到合适的大小,并在没有黑客攻击的情况下占用最小空间

无法创建MKAssociateRegion对象

在SwiftUI中,我如何确保带有符号的单词不会被拆分为两行?

如何为我的项目设置生命周期选项?

我如何在 swift 中的 viewdidload 之前进行委托?

Swift:结果的失败类型不能是协议 - Type 'any ShadowError' cannot conform to Error

如何在 macOS/AppKit 的窗口选项卡上接受拖动项目的放置?

如何将变量添加到不属于可解码部分的 struct ?

如何有条件地依赖桌面与 iOS 的系统库?

如何在 Swift 中的两个 UIView 中心之间添加线?

如何让不同的组件拥有不同的动画?

Reality Composer Tap Trigger 问题

如何使用 Date.ParseStrategy 在 Swift 5.6 中将字符串解析为日期?

在 SwiftUI 中,如何在 UIView 内或作为 UIView 使用 UIHostingController?

为什么 swift 中的类没有存储类型属性?

Swift 中 NSFetchRequest 的多个 NSPredicates?

Swift 中的 PageViewController 当前页面索引