作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在 ViewDidLoad()
中将 SearchBar
添加到我的 TableView
中:
self.searchBar = UISearchController(searchResultsController: nil)
self.searchBar.searchResultsUpdater = self
self.searchBar.dimsBackgroundDuringPresentation = false
self.searchBar.searchBar.sizeToFit()
self.tableView.tableHeaderView = self.searchBar.searchBar
self.tableView.reloadData()
一切正常,但是当我点击这个 SearchBar
时它消失了。这意味着,我仍然可以打字,我可以看到结果,但是看不到 SearchBar
。我实现了 UISearchBarDelegate
并且我一直在尝试添加
func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
self.navigationController?.navigationBarHidden = false
}
func searchBarTextDidEndEditing(searchBar: UISearchBar) {
self.navigationController?.navigationBarHidden = true
}
但是还是不行。您知道为什么这个 Search Bar
消失了吗?
这个问题的解决方案是(就像@sandy sad)在viewDidLoad()
self.aNavigationController?.extendedLayoutIncludesOpaqueBars = true
但现在我遇到了一个新问题,这意味着当我在 TableView
中选择行并显示新的 VievController
时,SearchBar
不会消失并且我以新的视角看待它。为什么?
最佳答案
您需要在 viewDidLoad() 中将 extendedLayoutIncludesOpaqueBars 设置为 true。
self.aNavigationController?.extendedLayoutIncludesOpaqueBars = true
关于ios - 键入时搜索栏从 View 中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34633176/
我是一名优秀的程序员,十分优秀!