UISearchController 中的 UISearchBar 不会消失

Posted

技术标签:

【中文标题】UISearchController 中的 UISearchBar 不会消失【英文标题】:UISearchBar in UISearchController Does Not Disappear 【发布时间】:2015-05-27 21:54:12 【问题描述】:

我没有使用 Storyboard SEGUES。

当我使用UISearchController 在我的表格视图顶部有一个搜索栏时,我得到了非常奇怪的行为。是否有关于当视图消失时我应该如何处理搜索栏的文档?当我通过动画切换到新的视图控制器或在导航堆栈上按下一个时,栏会卡在它的位置,直到我点击“取消”按钮。

观看这段短片中发生的事情的视频:

https://www.youtube.com/watch?v=6G7xFMENm_o&feature=youtu.be

这是在视图控制器中设置搜索栏的代码:

var s: UISearchController!
private func configureSearching() 
    s = UISearchController(searchResultsController: nil)
    s.searchResultsUpdater = self
    s.dimsBackgroundDuringPresentation = false
    s.searchBar.searchBarStyle = .Minimal
    s.hidesNavigationBarDuringPresentation = false
    tableView.tableHeaderView = s.searchBar
    s.searchBar.sizeToFit()

【问题讨论】:

UISearchController persisting after segue的可能重复 我没有使用prepareForSegue: 不会有任何区别,请阅读文档或this 【参考方案1】:

您应该在 viewDidLoad 中添加以下行

self.definesPresentationContext = true

【讨论】:

这并不能解决问题。

以上是关于UISearchController 中的 UISearchBar 不会消失的主要内容,如果未能解决你的问题,请参考以下文章

用 UITableView 实现 UISearchController

UISearchController 中的取消按钮

UISearchController 中的搜索图标为截止

UIViewController 中的 UISearchController

iOS 11 上 UITableView 中的 UISearchController 问题

UISearchController 中的 UISearchBar 不会消失