当 editMode 为 .inactive 时,如何让 List 显示一组选定项目,而当 editMode 为 .active 时显示所有可选选项,以便用户可以更改选定项目集?这是我尝试过的:
import SwiftUI
struct SelectionView: View {
@Environment(\.editMode) var editMode
@State var selectedItems = Set<String>(["1-item", "2-item", "3-item", "4-item"])
let allItems = ["1-item", "2-item", "3-item", "4-item"]
var items: [String] {
if editMode?.wrappedValue == .inactive {
return Array(selectedItems)
}
else {
return allItems
}
}
var body: some View {
NavigationView {
List(items, id: \.self, selection: $selectedItems) { item in
Text(item)
}
.navigationBarItems(trailing: EditButton())
.navigationBarTitle("Items")
}
}
}
选定的数组现在是无序的,因为它是从一组生成的,我最终希望它以正确的顺序排列。但我首先尝试让列表按原样工作。