我有一個名為 Users 的 CoreData 表,其中包含用戶名等。它已被添加到我的 SwiftUI 檔案中
@Environment(\.managedObjectContext) private var viewContext
@FetchRequest(
sortDescriptors: [],
animation: .default)
private var users: FetchedResults<Users>
我有一個選擇器,它使用 ForEach 回圈并使用用戶表中的名稱填充選擇器。
@State var selectedUser = ""
Picker("Select user", selection: $selectedUser) {
ForEach(users) { user in
Text(user.name!)
}
}
.pickerStyle(.menu)
Text(selectedUser)
填充選擇器確實有效。但是,所選值未正確保存。當我選擇某些內容時,它不會顯示在文本區域中,并且在除錯模式下,它顯示 selectedUser 變數仍然是空字串。
我似乎無法弄清楚如何讓這個作業。
uj5u.com熱心網友回復:
將您的選擇屬性更改為用戶并使其可選(因為打開視圖時未選擇任何內容)
@State var selectedUser: User?
然后您需要.tag在您的選擇器中使用,以便可以將所選用戶正確分配給selectedUser
Picker("Select user", selection: $selectedUser) {
ForEach(users) { user in
Text(user.name!)
.tag(Optional(user))
}
}
.pickerStyle(.menu)
請注意,user變數需要在標簽中設為可選,以便其型別與selectedUser
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/448194.html
