iOS,Swift 3-UISearchBar在从详细视图返回后单击“取消”时消失

iOS,Swift 3-UISearchBar在从详细视图返回后单击“取消”时消失,ios,swift,uitableview,xcode8,uisearchbar,Ios,Swift,Uitableview,Xcode8,Uisearchbar,我在containerView中有一个tableView。以编程方式向其中添加了搜索栏。一切正常,除了以下情况:当我点击一个单元格时,tableView被搜索栏过滤,然后我从detailView返回(通过push segue显示),然后我关闭搜索栏(取消按钮),然后搜索栏消失。 奇怪的是,当我在控制台上调试它时,searchBar对象仍然在那里,它仍然是tableView的headerView。。。 任何人都有一个想法,是什么导致了这个问题,以及如何解决它 这是我的相关代码: 在viewDidL

我在containerView中有一个tableView。以编程方式向其中添加了搜索栏。一切正常,除了以下情况:当我点击一个单元格时,tableView被搜索栏过滤,然后我从detailView返回(通过push segue显示),然后我关闭搜索栏(取消按钮),然后搜索栏消失。 奇怪的是,当我在控制台上调试它时,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
    }
}
(MyPulleryViewController是包含containerView的VC,self是containerView的VC)

在IB上,mpvc设置为延伸边缘:在不透明条下


谢谢你的帮助

我也遇到了同样的问题,我认为这是iOS的问题,我通过为搜索结果制作viewcontroller解决了这个问题:

   let searchVC = mainStoryboard.instantiateViewController(withIdentifier: identifier) as! SearchResultViewController
    let searchController = UISearchController(searchResultsController: searchVC)
    searchController.searchResultsUpdater = searchVC
而且效果很好