UISearchController:searchResultsController没有显示

时间:2017-05-29 20:47:00

标签: ios swift uisearchcontroller

我对UISearchController很陌生,所以请原谅这是一个愚蠢的问题。

我尝试了this问题,但未能得到我想要的结果。

在我的viewDidLoad searchController = UISearchController(searchResultsController: customViewController)我初始化搜索控制器,如下所示:

let customViewController = MyCustomeViewController()

其中customViewController是一个子类UIViewController,现在有一些文本标签(通过界面构建​​器)。 (我声明如此:searchResultsController

我试图通过在委托方法中隐藏和取消隐藏searchController.searchResultsController?.view.isHidden = falsesearchResultsController而没有运气来跟踪上述链接。

结果相同:只有视图变暗。

理想情况下,我希望它类似于Facebook的应用程序,当您点按搜索栏时,它会显示不同的视图。

我在委托willPresentSearchController中打印了MyCustomViewController对象,并确实将其指示为Id,Name,Type,date 1,name1,employee,25/04/2017 2,name2,contrator,26/04/2017 3,name3,employee,25/04/2017 4,name4,contrator,26/04/2017 5,name5,employee,24/04/2017 6,name6,contrator,24/04/2017 7,name7,employee,25/04/2017 8,name8,contrator,24/04/2017 9,name9,employee,24/04/2017 10,name10,contrator,26/04/2017 6,name6,employee,27/04/2017 11,name11,employee,27/04/2017 12,name12,contrator,27/04/2017

我在这里遗漏了什么,或者这不是正确的做法?

enter image description here

2 个答案:

答案 0 :(得分:1)

原来,要显示的控制器需要是UITableViewController或其子类。我尝试了一个UIViewController的常规UITableView但没有运气。

答案 1 :(得分:0)

我发现@Simon的答案不正确。我可以为UIViewController使用searchResultsController

我的问题是searchController本身是从内存中释放的,因为在这种情况下,我没有将其保留为类范围的实例。

换句话说

代替

let searchController = UISearchController(searchResultsController: MySearchResultsController())
...
self.navigationItem.titleView = self.searchController.searchBar
// And add other delegates and stuff

我在全班学习了全球,并且做了

private var searchController : UISearchController!

...

self.searchController = UISearchController(searchResultsController: MySearchResultsController())
...

self.navigationItem.titleView = self.searchController.searchBar
// And add other delegates and stuff