Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 11导航栏与搜索控制器的奇怪行为_Ios_Swift_Xcode_Uinavigationbar_Uisearchcontroller - Fatal编程技术网

iOS 11导航栏与搜索控制器的奇怪行为

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

概述

我一直在开发一款自iOS 11发布以来就未曾涉及过的应用程序。导航栏中的搜索控制器始终是其核心部分,此控制器用作标题视图,始终显示在屏幕顶部

当前状态

通过一些研究,我可以设法用标准的
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
}

你找到解决办法了吗?不幸的是还没有。