iOS添加UISearchController取消隐藏NavigationBar

时间:2015-09-27 02:14:36

标签: ios uitableview uisearchcontroller

当我使用UISearchController更新我的表视图时,我有这种奇怪的副作用(如果我从tableview中选择一些内容而不搜索bug本身就不会显示)。但是当我搜索时,选择一个单元格,然后popViewControllerAnimated:由于某种原因导航栏不再被隐藏。我想这是iOS中的一个错误,并不是我的代码所特有的。但是我想我会看到是否有人能够发现我的代码中的错误,或者对我可能做错的事情有任何想法。我已将[self.navigationController setNavigationBarHidden:YES];添加到viewWillAppear的{​​{1}},但在动画结束之前,该栏不会消失。

我的TableView / UISearchController代码:

rootView

2 个答案:

答案 0 :(得分:2)

如果设置searchController.hidesNavigationBarDuringPresentation = NO

,问题是否会消失?

可能会发生以下情况:

  1. 当您开始搜索时,searchController.active设置为YES。因此,searchController会调用[... setNavigationBarHidden:YES],因为默认为UISearchController.hidesNavigationBarDuringPresentation = YES
  2. popViewControllerAnimated:被召唤。
  3. searchController.active设置为NO,因此searchController会调用[... setNavigationBarHidden:NO]。这会导致显示导航栏。

答案 1 :(得分:-1)

我认为一旦您的搜索结果返回,您将重新加载主表而不是搜索表。这是您应该如何在搜索结果表上加载数据。

self.searchController.searchResultsTableView reloadData];