Thank you :)
I also reached to the same conclusion.
However I solved it so:
struct testtable: View {
struct Person: Identifiable {
let givenName: String
let familyName: String
let index: String
let id = UUID()
}
@State private var people = [
Person(givenName: "Juan", familyName: "Chavez", index: "0"),
Person(givenName: "Mei", familyName: "Chen", index: "1"),
Person(givenName: "Tom", familyName: "Clark", index: "2, id: 2"),
Person(givenName: "Gita", familyName: "Kumar", index: "3, id: 3"),
]
@State private var sortOrder = [KeyPathComparator(\Person.givenName)]
@State private var selection : Person.ID?
var body: some View {
Button(action: {
if self.selection != nil {
guard let select = people.first(where: { $0.id == self.selection
}) else {
fatalError()
}
print("array[\(self.selection)]")
print(select)
}
}){
Label("Print Array Items", systemImage: "doc.text.magnifyingglass")}
Table(people, selection: $selection, sortOrder: $sortOrder) {
TableColumn("Given Name", value: \.givenName)
TableColumn("Family Name", value: \.familyName)
}
.onChange(of: sortOrder) {
people.sort(using: $0)
}
}
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: