iOS,Swift 3 - 当我从详细视图返回后单击取消时,UISearchBar 消失
Posted
技术标签:
【中文标题】iOS,Swift 3 - 当我从详细视图返回后单击取消时,UISearchBar 消失【英文标题】:iOS, Swift 3 - UISearchBar disappears when I click on Cancel after returning from Detail View 【发布时间】:2017-08-07 15:24:34 【问题描述】:我在 containerView 中有一个 tableView。以编程方式向其中添加了一个 searchBar。一切正常,除了以下情况:当我点击一个单元格时,tableView 被 searchBar 过滤,然后我从 detailView(通过 push segue 呈现)返回,然后我关闭了 searchBar(取消按钮) ,然后搜索栏消失。 神奇的是,当我在控制台调试的时候,searchBar对象还在,而且还是tableView的headerView... 任何人都有一个想法,什么可能导致这个问题,以及如何解决它?
这是我的相关代码:
在 viewDidLoad 中:
self.searchController.searchResultsUpdater = self
self.searchController.delegate = self
self.searchController.dimsBackgroundDuringPresentation = false
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.definesPresentationContext = false
self.tableView.tableHeaderView = self.searchController.searchBar
searchControllerDelegate:
func willPresentSearchController(_ searchController: UISearchController)
if let mpvc = self.parent as? MyPulleyViewController
mpvc.navigationController?.navigationBar.isTranslucent = true
func willDismissSearchController(_ searchController: UISearchController)
if let mpvc = self.parent as? MyPulleyViewController
mpvc.navigationController?.navigationBar.isTranslucent = false
(myPulleyViewController是包含containerView的VC,self是containerView的VC)
在 IB 上,mpvc 设置为 Extend edges: Under Opaque Bars
感谢您的帮助!
【问题讨论】:
【参考方案1】:我遇到了同样的问题,我认为这是 ios 问题,我通过为搜索结果制作视图控制器来解决它:
let searchVC = mainStoryboard.instantiateViewController(withIdentifier: identifier) as! SearchResultViewController
let searchController = UISearchController(searchResultsController: searchVC)
searchController.searchResultsUpdater = searchVC
而且效果很好。
【讨论】:
以上是关于iOS,Swift 3 - 当我从详细视图返回后单击取消时,UISearchBar 消失的主要内容,如果未能解决你的问题,请参考以下文章