UISearchController 以模态方式存在时的错误行为
Posted
技术标签:
【中文标题】UISearchController 以模态方式存在时的错误行为【英文标题】:UISearchController incorrect behavior when it is present modally 【发布时间】:2016-09-18 11:36:35 【问题描述】:我展示了UIViewController
之类的模态样式。 UIViewController
有 UITableView
。我将UISearchController
添加到UITableView
但UISearchController
在消失时有不正确的行为。我做了很多次UISearchControllers
,但我没有面对这种行为。
我的代码
所以我显示UIViewController
@objc fileprivate func selectInterlocutor(_ button: UIButton)
let selectInterlocutorTVC = SelectInterlocutorTableViewController()
selectInterlocutorTVC.modalPresentationStyle = .overCurrentContext
selectInterlocutorTVC.modalTransitionStyle = .coverVertical
selectInterlocutorTVC.providesPresentationContextTransitionStyle = true
present(selectInterlocutorTVC, animated: true)
我将UISearchController
添加到tableView
fileprivate func addSearchController()
searchController.searchBar.barStyle = .default
searchController.delegate = self
searchController.searchBar.delegate = self
searchController.searchResultsUpdater = self
searchController.searchBar.autocapitalizationType = .words
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
searchController.searchBar.sizeToFit()
tableView.tableHeaderView = searchController.searchBar
请观看此视频,您可以看到此行为。 https://www.dropbox.com/s/l3m3q8wmqoy3qv2/SearchBarBug.mov?dl=0
我该如何解决?
【问题讨论】:
【参考方案1】:我删除了UISearchController
并使用了UISearchBar
,它对我有用。
fileprivate func addSearchController()
searchBar.barStyle = .default
searchBar.delegate = self
searchBar.autocapitalizationType = .words
searchBar.showsCancelButton = true
searchBar.sizeToFit()
tableView.tableHeaderView = searchBar
【讨论】:
以上是关于UISearchController 以模态方式存在时的错误行为的主要内容,如果未能解决你的问题,请参考以下文章
iOS UISearchController 崩溃:应用程序试图在自身上呈现模态视图控制器
以编程方式显示导航栏的 UISearchController
以编程方式自动布局到 UISearchController 选择它时消失