博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
苹果文档 UISearchController的介绍
阅读量:5828 次
发布时间:2019-06-18

本文共 5197 字,大约阅读时间需要 17 分钟。

从这段介绍,可以知道这几个重点: 1、UISearchController 的 delegate 和 searchResultsUpdater 可以设置为其他控制器; 2、UISearchController 弹出的搜索结果控制器和显示被搜索内容控制器之间是模态的关系,且 modalPresentationStyle 属性是 UIModalPresentationCurrentContext; 3、UISearchController 不应该被直接展示;

A UISearchController object manages the display of search results based on interactions with a search bar. You use a search controller in tandem with your existing view controllers. When you have a view controller with searchable content, incorporate the search bar of a UISearchController  object into your view controller’s interface. When the user interacts with that search bar, the search controller automatically displays a new view controller with the search results that you specify. 一个UISearchController对象管理用户操作 search bar 后的搜索结果。搜索控制器层叠在已有的视图控制器上面。当你有一个可搜索内容的视图控制器时,将UISearchController 对象的 search bar 组合到这个视图控制器的界面上。在用户操作 search bar 时,搜索控制器自动显示一个新的视图控制器,它包含了你指定的搜索内容。

A search controller works with two custom view controllers that you provide. The first view controller displays your searchable content and the second displays your search results. The first view controller is part of your app’s main interface and you display it in whatever way is appropriate for your app. You pass the second view controller to the initWithSearchResultsController:  method when you initialize your search controller, and the search controller displays that view controller at appropriate times. 一个搜索控制器和你提供的两个自定义视图控制器一起工作。第一个视图控制器显示可搜索内容,第二个显示搜索结果。第一个视图控制器是 App 主界面的一部分,它在 App 中可能以任何合适的方式显示。在初始化搜索控制器时,将第二个视图控制器传给initWithSearchResultsController:方法,这样搜索控制器就能在合适的时间显示这个视图控制器。

Each search controller provides a UISearchBar  object that you must incorporate into the user interface of your initial view controller. Add this object to the view containing your searchable contents. For example, if you use a table view for your searchable contents, you can assign the search bar to the tableHeaderView  property of that table view. When the user taps the search bar to enter a search term, the search controller automatically displays your search results view controller and notifies your app that the search process has begun. 每个搜索控制器都提供了UISearchBar对象,必须将它加到初始视图控制器的界面上。 把它添加到包含可搜索内容的视图上。例如,如果你的可搜索内容是一个表视图,你可以把 search bar 赋值给表视图的tableHeaderView属性。当用户点击 search bar 并输入搜索条目时,搜索控制器自动显示你的搜索结果视图控制器,同时通知你的 App 搜索已经开始了。

When the user interacts with the search bar, the search controller notifies the object in its searchResultsUpdater  property. You provide the search results updater object, which must conform to the UISearchResultsUpdating  protocol. You use the methods of that protocol to search your content and deliver the results to your search results view controller. Typically, the view controller with your searchable content also acts as the search results updater object, but you can use another object if you prefer. 当用户操作 search bar 时,搜索控制器通知它自己的属性searchResultsUpdater的对象。你要提供更新搜索结果的对象,它必须遵循UISearchResultsUpdating协议。你可以使用协议中的方法搜索你的内容并将结果传递给搜索结果视图控制器。通常,由可搜索内容的视图控制器担任更新搜索结果的对象,但是你也可以使用其他对象。

Listing 1 shows how to configure a search controller from the view controller displaying the searchable content. This code creates another custom view controller for displaying the search results and uses that object to create the search controller object. The current view controller stores a reference to the search controller and handles updates when the search term changes. The view controller also acts as the presentation context for the search results, which is usually what you want. 代码1 显示了如何在可搜索内容的视图控制器上配置一个搜索控制器。下面的代码创建了一个自定义视图控制器用来显示搜索结果并用它来创建一个搜索控制器对象。当前视图控制器保存了搜索控制器的引用且在搜索条目改变时更新界面。这个视图控制器也可以作为搜索结果的展示上下文。

Listing 1Creating and configuring a search controller

// Create the search results controller and store a reference to it. MySearchResultsController* resultsController = [[MySearchResultsController alloc] init]; self.searchController = [[UISearchController alloc] initWithSearchResultsController:resultsController]; // Use the current view controller to update the search results. self.searchController.searchResultsUpdater = self; // Install the search bar as the table header. self.tableView.tableHeaderView = self.searchController.searchBar; // It is usually good to set the presentation context. self.definesPresentationContext = YES; 复制代码

To customize the presentation or dismissal of the search results controller, assign an object to the search controller’s delegate  property. Delegate objects must conform to the UISearchControllerDelegate  protocol. You use the methods of that protocol to be notified when the search controller itself is activated and when the search results controller is presented or dismissed. 为了能够自定义展示或者dismiss 搜索结果控制器,给搜索控制器的delegate属性分配一个对象。委托对象必须遵循UISearchControllerDelegate协议。搜索控制器在激活时、展示后、dismiss 后会通知协议中的方法。

NOTE Although a UISearchController object is a view controller, you should never present it directly from your interface. If you want to present the search results interface explicitly, wrap your search controller in a UISearchContainerViewController object and present that object instead.

注意:尽管一个UISearchController对象是视图控制器,但是你绝对不能直接展示它。如果你希望精确的展示搜索结果界面,将你的搜索控制器包裹在UISearchContainerViewController对象中,然后展示这个对象。

转载地址:http://xnodx.baihongyu.com/

你可能感兴趣的文章
如何利用数字诊断功能(DDM)定位光模块的系统故障
查看>>
datetime与timestamp区别汇总
查看>>
华为TE60产品亮点及适用场景详解
查看>>
扫描二维码报修公司电脑
查看>>
循环内部修改List抛出ConcurrentModificationException异常
查看>>
努力爬坑
查看>>
xcode第三方插件管理工具Alcatraz
查看>>
液晶显示器常见故障
查看>>
Linux之RPM
查看>>
You don't have permission to access /nagios/ on this server
查看>>
the currently displayed page contains invalid values 解决方法
查看>>
cisco 2960 交换机 配置流程
查看>>
医疗借力 IT:令数据发挥更大潜能
查看>>
windows 共享 磁盘映射 开放端口
查看>>
全球六大顶级域名动态:8月下旬.COM新增超16.8万
查看>>
Swift 属性 笔记更新
查看>>
2014年度域名商报告:万网域名总量达213万 净增67万
查看>>
全球域名商解析新增量21强:万网坚守第三 易名第七
查看>>
Debian无线网卡为何是wlan1不是wlan0
查看>>
Linux用到的正则表达式
查看>>