在viewDidload
中,我实例化UISearchController
并将其搜索栏添加到表格视图的标题视图中,这是标准程序。
如果点击搜索栏并输入一些文字,会显示结果,我在这里取消搜索,没问题。
如果相反,我选择其中一个结果行,进入下一个屏幕,弹回并取消此处,搜索栏出现故障。
这是我的searchController:
// MARK : SearchController ! //
var searchController : UISearchController!
var resultsController = UITableViewController()
///////////
override func viewDidLoad() {
super.viewDidLoad()
definesPresentationContext = true
self.resultsController.tableView.dataSource = self
self.resultsController.tableView.delegate = self
self.searchController = UISearchController(searchResultsController: self.resultsController)
self.tableView.tableHeaderView = self.searchController.searchBar
self.searchController.searchResultsUpdater = self
self.searchController.dimsBackgroundDuringPresentation = true
self.searchController.searchBar.sizeToFit()
self.searchController.searchBar.barTintColor = UIColor.blackColor()
self.searchController.searchBar.endEditing(true)
self.searchController.searchBar.placeholder = "חפש ברים"
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.searchBar.delegate = self
}
就像搜索栏不再是tableHeaderView
而且它破坏了tableview
将最后一个单元格和第一个单元格切成两半。
提前谢谢!
答案 0 :(得分:0)
在玩了大量的设置后,我自己设法找到了解决方案,我不知道为什么这些特定的设置可以解决问题,但是这就解决了我的问题:
override func viewDidLoad() {
super.viewDidLoad()
//MARK : Fixes SearchBar Bugs
self.resultsController.edgesForExtendedLayout = .All
self.searchController.edgesForExtendedLayout = .All
self.resultsController.extendedLayoutIncludesOpaqueBars = true
// End of Bug Fixes.