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

时间:2018-03-21 18:40:08

标签: ios swift xcode uinavigationbar uisearchcontroller

常规

我一直致力于自iOS 11发布以来未被触及的应用程序。导航栏中的搜索控制器始终是它的核心部分,此控制器用作标题视图,始终显示在顶部屏幕。

当前状态

一些研究引导我到了能够设法用标准navigationItem.titleView属性替换旧navigationItem.searchController的地步,因此iOS可以处理与视图之间的转换等相关的所有内容。

Navigation Bar Weird Behavior

问题

这是我卡住的地方,因为从“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
}

0 个答案:

没有答案