Swift - UISearchController 与单独的 searchResultsController

swift

1个回答

写回答

zll123456.

2025-06-25 12:10

+ 关注

Swift
Swift

一篇关于 Swift 中 UISearchController 与单独的 searchResultsController 的文章,以下是相关的案例代码。

Swift 中,UISearchController 是一个强大的工具,用于在应用程序中添加搜索功能。它可以轻松地与表视图或集合视图等其他视图结合使用。此外,UISearchController 还可以使用单独的 searchResultsController,该控制器用于显示搜索结果。

## UISearchController 的基本用法

要使用 UISearchController,我们首先需要将其初始化并设置为我们想要添加搜索功能的视图控制器的属性之一。以下是一个简单的示例代码:

Swift

class ViewController: UIViewController, UITableViewDataSource, UISearchResultsUpdating {

let searchController = UISearchController(searchResultsController: nil)

override func viewDidLoad() {

super.viewDidLoad()

// 配置搜索控制器

searchController.searchResultsUpdater = self

searchController.obscuresBackgroundDuringPresentation = false

searchController.searchBar.placeholder = "搜索"

// 将搜索栏添加到导航栏

navigationItem.searchController = searchController

definesPresentationContext = true

}

// 实现 UISearchResultsUpdating 协议方法

func updateSearchResults(for searchController: UISearchController) {

// 处理搜索结果更新的逻辑

}

// 实现 UITableViewDataSource 协议方法

// ...

}

在上面的代码中,我们创建了一个 UISearchController 实例,并将其设置为视图控制器的属性之一。然后,我们配置了搜索控制器的一些属性,如搜索结果更新委托、背景遮罩等。最后,我们将搜索栏添加到导航栏,并定义了呈现上下文。

## 使用单独的 searchResultsController

除了将搜索栏添加到导航栏中,我们还可以使用单独的 searchResultsController 来显示搜索结果。这允许我们在用户输入搜索关键字后,将搜索结果以独立的方式显示出来。

以下是一个示例代码,演示了如何使用单独的 searchResultsController:

Swift

class ViewController: UIViewController, UITableViewDataSource, UISearchResultsUpdating {

let searchController = UISearchController(searchResultsController: searchResultsController)

let searchResultsController = UITableViewController(style: .plAIn)

override func viewDidLoad() {

super.viewDidLoad()

// 配置搜索控制器

searchController.searchResultsUpdater = self

searchController.obscuresBackgroundDuringPresentation = false

searchController.searchBar.placeholder = "搜索"

// 将搜索栏添加到导航栏

navigationItem.searchController = searchController

definesPresentationContext = true

// 配置搜索结果控制器

searchResultsController.tableView.dataSource = self

searchResultsController.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")

}

// 实现 UISearchResultsUpdating 协议方法

func updateSearchResults(for searchController: UISearchController) {

// 处理搜索结果更新的逻辑

}

// 实现 UITableViewDataSource 协议方法

// ...

}

在上面的代码中,我们首先创建了一个 UITableViewController 实例作为单独的 searchResultsController。然后,我们将其作为参数传递给 UISearchController 的初始化方法。接下来,我们配置了搜索结果控制器的数据源和单元格注册。

##

在本文中,我们介绍了如何在 Swift 中使用 UISearchController 添加搜索功能,并演示了使用单独的 searchResultsController 来显示搜索结果。UISearchController 是一个非常实用的工具,它使我们能够轻松地为应用程序添加搜索功能,并提供了灵活的配置选项。希望本文对你理解 UISearchController 的基本用法有所帮助。如果你有任何问题或建议,请随时在下方留言。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号