选择一个选择器值以指向一个文本字段,SwiftUI

Posted

技术标签:

【中文标题】选择一个选择器值以指向一个文本字段,SwiftUI【英文标题】:Selecting a picker value to lead to a text field, SwiftUI 【发布时间】:2020-10-04 14:12:41 【问题描述】:

我正在尝试在我的应用中实现一项功能。

当我点击我的选择器时:

Picker(selection: $profileViewModel.education,
     label: Text("Education Level")) 
     ForEach(Education.levels, id: \.self)  level in
         Text(level).tag(level)
     

这会将我带到一个屏幕,然后我选择值(这很好 - 它按预期工作)

我如何选择值,然后让我说另一个屏幕,以便我可以填写有关所选值的更多详细信息。

例如,上面的选择器有一个选择教育级别的值,选择它后,我怎么能得到一个操作表/另一个屏幕出现,所以我可以在那里有一个文本字段来保存这个额外的数据,或者一旦选择是完成后,会出现一个文本字段让我保存一些额外的数据,然后单击一个按钮将我带到选择器的原始屏幕(希望这有意义)?

我尝试在网上搜索类似的问题,但似乎找不到/或您能否指出我应该研究的方向?

尝试了以下方法:

【问题讨论】:

【参考方案1】:

如果我正确理解了您的情况,这是一种可能的方法(使用 Xcode 12 / ios 14 进行复制测试)

Picker(selection: $profileViewModel.education,
     label: Text("Education Level")) 
     ForEach(Education.levels, id: \.self)  level in
         Text(level).tag(level)
     

.onChange(of: profileViewModel.education)  _ in
    DispatchQueue.main.async 
        self.showSheet = true
    

.sheet(isPresented: $showSheet) 
    // put here your text editor or anything
    Text("Editor for \(profileViewModel.education)")

【讨论】:

以上是关于选择一个选择器值以指向一个文本字段,SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章

选择器中的 SwiftUI 和枚举

来自先前选择器的选择器值 - CoreData/SwiftUI

如何将颤动的日期选择器值添加到文本字段?

选择器值到 tableView swift

SwiftUI 从 CoreData 设置初始选择器值

如何在 SwiftUI 中将颜色选择器值保存到 UserDefaults 中?