常规
我一直致力于自iOS 11发布以来未被触及的应用程序。导航栏中的搜索控制器始终是它的核心部分,此控制器用作标题视图,始终显示在顶部屏幕。
当前状态
一些研究引导我到了能够设法用标准navigationItem.titleView
属性替换旧navigationItem.searchController
的地步,因此iOS可以处理与视图之间的转换等相关的所有内容。
问题
这是我卡住的地方,因为从“A”视图控制器到“B”时有一个巨大的故障。我不想使用大型标题,最好的解决方案是完全删除标题并仅显示搜索栏作为导航栏的内容,但不幸的是我无法达到这一点。
编辑:这些视图也嵌入在标签栏控制器中。
在viewDidLoad()
中搜索控制器设置代码:
// Initialize search controller and set its important attributes
searchController.searchResultsUpdater = self
searchController.hidesNavigationBarDuringPresentation = true
searchController.dimsBackgroundDuringPresentation = false
// Set placeholder text
searchController.searchBar.sizeToFit()
searchController.searchBar.placeholder = searchBarPlaceholder
searchController.searchBar.tintColor = UIColor.white
searchController.searchBar.returnKeyType = .search
// Replace title view with search bar
if #available(iOS 11.0, *) {
self.navigationItem.searchController = searchController
} else {
searchController.searchBar.barStyle = .black
self.navigationItem.titleView = searchController.searchBar
}