Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UISearchController使UITableView的内容变为黑色_Ios_Swift_Uitableview_Uisearchbar_Uisearchcontroller - Fatal编程技术网

Ios UISearchController使UITableView的内容变为黑色

Ios UISearchController使UITableView的内容变为黑色,ios,swift,uitableview,uisearchbar,uisearchcontroller,Ios,Swift,Uitableview,Uisearchbar,Uisearchcontroller,我对UISearchController与UITabBarController的组合有问题。我有三个标签。在每个选项卡中,我都有一个UITableViewController,其中UISearchController的搜索栏设置为表视图的标题视图,如下所示 searchController = UISearchController(searchResultsController: nil) searchController.searchResultsUpdater = self searchCo

我对UISearchController与UITabBarController的组合有问题。我有三个标签。在每个选项卡中,我都有一个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的内容将变为黑色。我读过多篇帖子,如或。但这些解决方案对我不起作用。如果我正在设置

definesPresentationContext = true

然后问题首先出现。如果我省略了这一行,那么表视图的内容不会变为黑色,但在下一个选项卡上,搜索栏在搜索状态下保持激活状态。我还尝试将searchResultsController设置为另一个UITableViewController,但这也不能解决问题。

我也遇到了同样的问题,只需在
视图中添加以下行即可解决该问题。

    self.searchController.active = false 
通常,获取此属性的值以确定是否显示搜索结果。但是,您可以将此属性设置为true,以强制显示搜索界面,即使用户尚未点击搜索字段

此属性的默认值为false

  • 从上面的描述中可以清楚地看出,如果用户与
    searchController
    交互,则默认值为
    false
  • 在我们的例子中,只有当
    UISearchController
    处于活动状态时,切换选项卡时才会出现问题。因此,切换到其他VC时,我们只需通过编程方式停用选项卡

我也遇到了同样的问题,只需在
视图中添加以下行即可解决

    self.searchController.active = false 
通常,获取此属性的值以确定是否显示搜索结果。但是,您可以将此属性设置为true,以强制显示搜索界面,即使用户尚未点击搜索字段

此属性的默认值为false

  • 从上面的描述中可以清楚地看出,如果用户与
    searchController
    交互,则默认值为
    false
  • 在我们的例子中,只有当
    UISearchController
    处于活动状态时,切换选项卡时才会出现问题。因此,切换到其他VC时,我们只需通过编程方式停用选项卡

当用户移动到另一个选项卡时,您是否尝试过以编程方式取消搜索?当用户移动到另一个选项卡时,您是否尝试过以编程方式取消搜索?我也将此解决方案用作解决方法。但它有两个缺点。首先,如果用户单击单元格然后返回,搜索结果将重置。其次,禁用搜索栏的动画持续时间不同于切换选项卡。因此,如果切换了tab,搜索栏仍会显示一段时间。如果您对
UISearchBar
没有问题,请使用它。它不会导致这种问题。我也将此解决方案用作解决方法。但它有两个缺点。首先,如果用户单击单元格然后返回,搜索结果将重置。其次,禁用搜索栏的动画持续时间不同于切换选项卡。因此,如果切换了tab,搜索栏仍会显示一段时间。如果您对
UISearchBar
没有问题,请使用它。它不会引起这种问题。