iOS--搜索UISearchController&&UISearchDisplayController

12rd,Jan,2016

打算实现一个带搜索的tableView,使用UISearchDisplayController时提示'UISearchDisplayerController' is deprecated. UISearchDisplayContrller has been replaced with UISearchController.所以本文将会通过两种方法实现改功能:

1. UISearchDisplayerController :实现iOS8以前的版本

2. UISearchController: 实现iOS8以后的版本



1.UISearchDisplayController

 1)首先拖一个Search Bar and Search Display Controller到tableView上面,拖进去之后点击查看Search Display Controller观察到该对象的绑定情况。



2) 实现代理:

UISearchDisplayDelegateUISearchBarDelegate

3)声明数据存储变量&&初始化数据:

NSArray *chatList; NSArray *resultList;

4)然后实现tableView的代理方法:numberOfScetionsInTableView, numberOfRowsInSection,cellForRowAtIndexPath 。分为两种情况,一种情况是默认显示的数据,一种是搜索结果要显示的数据(tableView == self.searchDisplayController.searchResultsTableView)

5)实现UISearchDisplayDelegate中的委托方法: 通过谓词方法过滤数据()


2. UISearchController

1) 实现代理:

  UISearchResultsUpdating

2) 声明数据存储变量&&初始化数据:

NSMutableArray *chatList; NSMutableArray *resultList;

@property (nonatomic, strong) UISearchController *searchController;

3) 初始化searchController:


4) 实现tableView的代理方法:numberOfScetionsInTableView, numberOfRowsInSection,cellForRowAtIndexPath 。分为两种情况,一种情况是默认显示的数据,一种是搜索结果要显示的数据。判断方法self.searchController.active 为真则是搜索结果的情况。

5)实现UISearchResultsUpdating的代理方法:

  updateSearchResultsForSearchController即可





参考文献:

 ios UISearchController

iOS开发-搜索栏UISearchBar和UISearchController













你可能感兴趣的:(iOS实战录)