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 black或UISearchController causes black screen Swift 2.0。但这些解决方案对我不起作用。如果我正在设置
definesPresentationContext = true
然后问题首先发生。如果我省略此行,则表格视图的内容不会变成黑色,但搜索栏会在下一个选项卡上以搜索状态保持激活状态。我也尝试将searchResultsController设置为另一个UITableViewController,但它也没有解决问题。
答案 0 :(得分:0)
我也面临同样的问题,只需在viewDidDisappear
self.searchController.active = false
通常,您获取此属性的值以确定是否显示搜索结果。但是,您可以将此属性设置为true以强制显示搜索界面,即使用户未在搜索字段中点击也是如此。
此属性的默认值为false。
false
进行互动,则默认值为searchController
。UISearchController
有效时切换标签时才会出现问题。因此,我们需要在切换到其他VC时以编程方式停用。