iOS,Swift 3 - 当我从Detail View返回后点击Cancel时,UISearchBar消失

问题描述:

我在containerView中有一个tableView。以编程方式将searchBar添加到它。一切正常,除了案件:当我点击一个单元格,而tableView是由searchBar过滤,然后我从detailView返回(通过push segue呈现),然后我关闭searchBar(取消按钮) ,那么searchBar就会消失。 神秘的是,当我在控制台上调试它时,searchBar对象仍然存在,它仍然是tableView的headerView ... 任何人都有一个想法,什么会导致这个问题,以及如何解决它?iOS,Swift 3 - 当我从Detail View返回后点击Cancel时,UISearchBar消失

这里是我的相关代码:

在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,自我是containerView的VC)

在IB上,mpvc被设置为Extend edges:在不透明酒吧

感谢您的任何帮助!

我面临同样的问题,我觉得这是iOS的问题,我固定它通过使视图 - 控制搜索结果:

let searchVC = mainStoryboard.instantiateViewController(withIdentifier: identifier) as! SearchResultViewController 
    let searchController = UISearchController(searchResultsController: searchVC) 
    searchController.searchResultsUpdater = searchVC 

,它工作正常。