【发布时间】:2020-05-09 15:16:27
【问题描述】:
我不明白如何在 SwiftUI 中实现一个简单的选择器,该选择器显示一个值列表,这些值保留在不同视图之间切换的选定值。顺便说一句,我可以使用选定的值通过组合框架更新模型。
这是代码,但 onAppear{}/onDisappear{} 无法按预期工作:
struct CompanyView: View {
@ObservedObject var dataManager: DataManager = DataManager.shared
@State var selTipoAzienda = 0
var body: some View {
VStack {
companyPhoto
Text("Company view")
Form {
Picker(selection: $selTipoAzienda, label: Text("Tipo Azienda")) {
ForEach(0 ..< self.dataManager.company.tipoAziendaList.count) {
Text(self.dataManager.company.tipoAziendaList[$0])
}
}
}
Button(action: {self.dataManager.cambiaTipoAzienda(tipoAzienda: self.dataManager.company.tipoAziendaList[self.selTipoAzienda]) }) {
Image(systemName: "info.circle.fill")
.font(Font.system(size: 28))
.padding(.horizontal, 16)
}
}
// .onAppear{
// self.selTipoAzienda = self.dataManager.company.tipoAziendaList.firstIndex(of: self.dataManager.company.tipoAzienda) ?? 0
// }
// .onDisappear{
// self.dataManager.cambiaTipoAzienda(tipoAzienda: self.dataManager.company.tipoAziendaList[self.selTipoAzienda])
// }
}
我认为 binding 和 didSet 将是答案,但我不知道它们必须如何实现
【问题讨论】:
-
任何代码示例或对您当前设置的更详细说明都会有所帮助:)
标签: swift forms picker combine