iOS 11导航栏与搜索控制器的奇怪行为
概述 我一直在开发一款自iOS 11发布以来就未曾涉及过的应用程序。导航栏中的搜索控制器始终是其核心部分,此控制器用作标题视图,始终显示在屏幕顶部 当前状态 通过一些研究,我可以设法用标准的iOS 11导航栏与搜索控制器的奇怪行为,ios,swift,xcode,uinavigationbar,uisearchcontroller,Ios,Swift,Xcode,Uinavigationbar,Uisearchcontroller,概述 我一直在开发一款自iOS 11发布以来就未曾涉及过的应用程序。导航栏中的搜索控制器始终是其核心部分,此控制器用作标题视图,始终显示在屏幕顶部 当前状态 通过一些研究,我可以设法用标准的navigationItem.searchController属性替换旧的navigationItem.titleView,这样iOS就可以处理与视图之间转换相关的一切 问题 这就是我被卡住的地方,因为从“a”视图控制器转到“B”时出现了一个巨大的故障。我不想使用大标题,最好的解决方案是完全删除标题,只显
navigationItem.searchController
属性替换旧的navigationItem.titleView
,这样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
}
你找到解决办法了吗?不幸的是还没有。