NavigationItem iOS 11 Apple 方式中的 UISearchController

Posted

技术标签:

【中文标题】NavigationItem iOS 11 Apple 方式中的 UISearchController【英文标题】:UISearchController in NavigationItem iOS 11 Apple way 【发布时间】:2018-06-24 23:30:19 【问题描述】:

ios 11 中,Apple 提供了新的搜索栏,但在 iOS 11.2.2 中,当两个视图控制器都有 searchController 时,开发人员会出现 push\pop 动画错误。 Apple 在文件应用程序中展示了他们的愿景。 有人知道怎么做吗?

编辑#1

动画损坏的问题。 Broken UISearchBar animation embedded in NavigationItem

【问题讨论】:

您看到的“错误”到底是什么? “错误”将是如果我尝试使用本机方法进行类似操作。这是正确的方法,但我不知道它是怎么做到的 所以这显示了正确的方式并且看起来不错?您正在使用“本机”方法进行操作,但它不起作用?首先展示你得到了什么,然后是你正在使用的代码。 编辑过的帖子带有动画错误的链接 那么这是一个新问题,还是您正在寻找该问题的答案? 【参考方案1】:

你可以在 ViewController 中添加一些代码 -viewDidLoad 一些代码行用于导航栏中的搜索栏

self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .automatic
let search = UISearchController(searchResultsController: nil) // Declare the searchController
self.navigationItem.searchController = search

【讨论】:

以上是关于NavigationItem iOS 11 Apple 方式中的 UISearchController的主要内容,如果未能解决你的问题,请参考以下文章

iOS11 SearchController - 从 navigationItem 中移除 SearchBar 会留下损坏的 UI

iOS 11 navigationitem大标题不能为TabBarController正确展开/折叠

NavigationItem iOS 11 Apple 方式中的 UISearchController

在 iOS 中将 self.navigationItem.backBarButtonItem 与设备左侧对齐

iOS 11 - 使用大标题模式时的 UINavigationItem titleView

如何在新的 navigationItem.searchController 中将 SearchBar 居中?