我想确保当我的表视图的数据源为空时不显示搜索栏。 (有道理,不?不应该是默认行为吗?)
这是我的一段代码,它试图(目前没有注释)不同的东西来完成它,但不知何故它不起作用。
有人可以告诉我我做错了什么吗?如果您需要更多代码段,请与我们联系。
messagesArray=loadMessages()
DispatchQueue.main.async {
if (self.messagesArray.count==0){
self.noMessageview.isHidden=false
//self.searchController.searchBar.isHidden = true
//self.searchController.isActive = false
} else{
self.noMessageview.isHidden=true
//self.searchController.searchBar.isHidden = false
//self.searchController.isActive = true
}
self.spinner.stopAnimating()
self.refreshControl.endRefreshing()
self.tableView.reloadData()
}
更新
我声明搜索控制器是这样的:
let searchController = UISearchController(searchResultsController: nil)
在ViewDidLoad中我做了:
navigationItem.searchController = searchController
答案 0 :(得分:0)
我认为您使用的是iOS 11,因为您从UISearchController
设置了navigationItem
,因此您可以使用以下代码将其删除:
if #available(iOS 11.0, *) {
self.navigationItem.largeTitleDisplayMode = .never;
self.navigationItem.searchController = nil
} else {
// Fallback on earlier versions
self.navigationItem.titleView = nil
};
我遇到了一些问题,我认为它的iOS 11错误,在删除UISearchController
时,视图无法调整,因此我必须在删除UISearchController
之前调用此权限。
self.navigationItem.largeTitleDisplayMode = .never;
多数人。