我对UISearchController很陌生,所以请原谅这是一个愚蠢的问题。
我尝试了this问题,但未能得到我想要的结果。
在我的viewDidLoad
searchController = UISearchController(searchResultsController: customViewController)
我初始化搜索控制器,如下所示:
let customViewController = MyCustomeViewController()
其中customViewController是一个子类UIViewController,现在有一些文本标签(通过界面构建器)。
(我声明如此:searchResultsController
我试图通过在委托方法中隐藏和取消隐藏searchController.searchResultsController?.view.isHidden = false
和searchResultsController
而没有运气来跟踪上述链接。
结果相同:只有视图变暗。
理想情况下,我希望它类似于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
。
我在这里遗漏了什么,或者这不是正确的做法?
答案 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