如何将UISearchController的searchBar设置为不是tableHeaderView或navigationItem.titleview的视图?

时间:2015-06-10 12:48:11

标签: ios swift ios8 uisearchbar uisearchcontroller

我正在尝试在桌面滚动时将搜索栏保留在视图中。目前我将它作为标题放在一个tableview中,它可以正常工作,当然,当你走下桌子时,搜索栏会滚动离开屏幕。我以为我可以简单地修改这个代码示例:

How do I use UISearchController in iOS 8 where the UISearchBar is in my navigation bar and has scope buttons?

searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.delegate = self
searchController.searchBar.delegate = self
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
tableview.tableHeaderView = searchContoller.searchBar // How to put it elsewhere?
//Alternative that also works
navigationItem.titleView = searchController.searchBar

想法是采取其他观点并做

otherview = searchController.searchBar

例如UISearchBar的出口,或空白的UIView,或类似的东西。

但如果我这样做,它就不会显示searchBar。它似乎只能用作表的标题视图或navigationItem.titleView。

我错过了什么吗?

1 个答案:

答案 0 :(得分:25)

如果您有一个位于tableview上方的空白UIView。

让我们假设您有一个名为searchContainer的空白UIView的出口。 然后,您可以通过添加以下行

UISearchController的搜索栏添加到该视图
searchContainer.addSubview(searchController.searchBar)