接下来,是时候连接SortSelectionView到ContentView. 打开ContentView.swift。在 下friends,添加以下内容:
@State private var selectedSort = FriendSort.default
上面的代码添加了一个代表所选排序选项的 state 属性,并使用您之前定义的默认值。
最后,将.toolbar修改器的主体替换为以下内容:
// 1
ToolbarItemGroup(placement: .navigationBarTrailing) {
// 2
SortSelectionView(
selectedSortItem: $selectedSort,
sorts: FriendSort.sorts)
// 3
.onChange(of: selectedSort) { _ in
friends.sortDescriptors = selectedSort.descriptors
}
// 4
Button {
addViewShown = true
} label: {
Image(systemName: "plus.circle")
}
}
下面是这段代码发生的事情:
-
它不是分离ToolbarItem包装器,而是将工具栏的两个视图嵌入到 a 中ToolbarItemGroup并应用.navigationBarTrailing放置。在ToolbarItemGroup下来的不必要的代码一点点削减。
-
它添加了SortSelectionView作为第一个工具栏项。传入selectedSort属性作为 的绑定PickerView。
-
在更改选定的排序时,它SortDescriptor从选定的排序中获取s 并将它们应用到获取的friends列表中。
-
在排序视图之后插入添加按钮工具栏元素。
这样就完成了您的排序实现!建造并运行以欣赏您的手工艺品。
点击新的排序按钮会触发一个菜单。当前排序是预先选择的:
选择新的排序将关闭菜单并立即对列表进行排序:
再次打开菜单会显示正确选择的排序。惊人的!
然而,当你有这么多朋友时,你并不总是通过排序找到你想要的。接下来,您将了解如何添加搜索。
精品教程推荐
加入我们一起学习SwiftUI
QQ:3365059189
SwiftUI技术交流QQ群:518696470
教程网站:www.openswiftui.com