SwiftUI CoreData教程之 06 连接排序视图

接下来,是时候连接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

发表回复