将UISearchController添加到非表视图

时间:2014-10-10 15:41:38

标签: ios8 uisearchbar uisearchcontroller

我在IOS8中使用新的UISearchController时遇到了麻烦。到目前为止,我发现的每个示例都使用搜索栏作为UITableView的标题视图。当搜索栏需要在其他地方显示时,你会怎么做?例如,将搜索栏放在表格之外以防止其滚动?用它来像UICollectionView一样呢?

我在这里遗漏了什么吗?它似乎不应该那么复杂。

1 个答案:

答案 0 :(得分:3)

UISearchBar放置在导航栏的titleView中,可以防止滚动桌面视图时滚动它。

self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.searchBarStyle = UISearchBarStyleMinimal;

// Include the search bar within the navigation bar.
self.navigationItem.titleView = self.searchController.searchBar;

self.definesPresentationContext = YES;

UISearchController依赖于searchResultsControllersearchResultsController应该是管理搜索结果的视图控制器。 当UISearchBar处于活动状态时,请确保基于UISearchController中的文本{{1}}属性更新指向视图控制器。这样,您就可以将UISearchController与tableview或collectionview一起使用。