问题描述
在我的应用程序中,我使用的是放置在navigationItem中的searchController。 我这样创建一个searchController:
class FirstVC: UIViewController,UITableViewDelegate,UITableViewDataSource {
private var searchController = UISearchController()
var creator: FirstVC?
@IBOutlet var navigationBarItem: UINavigationItem!
override func viewDidLoad() {
super.viewDidLoad()
searchController = setupSearchController()
navigationBarItem = searchController
}
private func setupSearchController() -> UISearchController {
let controller = UISearchController(searchResultsController: nil)
...
return controller
}
如果我的tableView为空,那么我将隐藏searchController,否则将其显示:
private func hideSearchBar() {
navigationBarItem.searchController = nil
}
private func showSearchBar() {
navigationBarItem.searchController = searchController
}
private func reloadCreator(vc: FirstVC) {
...
if !....isEmpty {
showSearchBar()
} else {
hideSearchBar()
}
但是,当我在此上方显示SecondVC时(为此我使用navigationController?.showDetailViewController(...)
func)然后将其关闭,则searchController不会显示。但是,如果我按下VC再回来,它就会显示出来。
当我关闭SecondVC时,我尝试使用func reloadCreator
在FirstVC中重新加载数据,但是searchController没有出现。
@objc private func dismissSecondVC() {
...
guard let vc = creator else { return }
reloadCreator(vc: vc)
dismiss(animated: true,completion: nil)
}
如何显示searchController?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)