UISearchController使UITableView的内容变黑

时间:2016-08-29 06:10:40

标签: ios swift uitableview uisearchbar uisearchcontroller

UISearchController与UITabBarController结合使用时出现问题。我有3个标签。在每个选项卡中,我都有一个UITableViewController,其中UISearchController的搜索栏设置为表视图的标题视图,如下所示。

searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = true
tableView.tableHeaderView = searchController.searchBar
tableView.contentOffset = CGPointMake(0, CGRectGetHeight(searchController.searchBar.frame))

如果我开始搜索并切换到其他选项卡而不取消搜索,然后返回上一个选项卡,则UITableView的内容将变为黑色。我已阅读多个帖子,例如UISearchController makes the controller blackUISearchController causes black screen Swift 2.0。但这些解决方案对我不起作用。如果我正在设置

definesPresentationContext = true

然后问题首先发生。如果我省略此行,则表格视图的内容不会变成黑色,但搜索栏会在下一个选项卡上以搜索状态保持激活状态。我也尝试将searchResultsController设置为另一个UITableViewController,但它也没有解决问题。

1 个答案:

答案 0 :(得分:0)

我也面临同样的问题,只需在viewDidDisappear

中添加以下行即可解决
    self.searchController.active = false 
  

通常,您获取此属性的值以确定是否显示搜索结果。但是,您可以将此属性设置为true以强制显示搜索界面,即使用户未在搜索字段中点击也是如此。

     

此属性的默认值为false。

  • 从上面的说明中可以清楚地看到,如果用户与false进行互动,则默认值为searchController
  • 在我们的情况下,只有在UISearchController 有效时切换标签时才会出现问题。因此,我们需要在切换到其他VC时以编程方式停用。