隐藏搜索显示控制器的搜索栏

时间:2016-01-05 18:21:55

标签: ios hide searchbar

我拖动搜索栏并将控制器显示到视图控制器并将其放在轮廓的底部。

然后我将其设置为在导航栏中显示,并在viewdidload中显示以下行。一切正常。

self.searchDisplayController.displaysSearchBarInNavigationBar = true;

但是,我想最初隐藏它,并且vewdidload中的以下行没有任何效果。

self.searchDisplayController.searchBar.hidden = true;

有人可以建议做什么吗?

提前感谢任何建议。

编辑:

我想我已经发现你不能同时拥有searchBar.hidden = true和displaysSearchBarInNavigationBar。我很好,因为我只想要一个或另一个。所以我尝试将这两种情况分开。

首先在视图中加载,我把

self.searchDisplayController.searchBar.hidden = true;

如果单独使用,这确实有效。

然后我有一个搜索按钮连接到一个动作方法,如下所示:

 - (IBAction)searchButtonPressed:(id)sender {
    NSLog(@"search button pressed");
    self.searchDisplayController.searchBar.hidden = false;
    self.searchDisplayController.displaysSearchBarInNavigationBar = true;
    self.searchDisplayController.searchBar.showsCancelButton = YES;
}

但是,虽然我可以从日志中看到该方法被调用,但它并没有取消隐藏搜索栏。也许这是代表问题,但仍在寻找解决方案。

2 个答案:

答案 0 :(得分:1)

这样做

  1. 从故事板
  2. 向searchBar添加插座
  3. 然后,您可以使用插座标识符通过添加以下行隐藏searchBar
  4. searchBar.hidden = true

答案 1 :(得分:0)

=>试试吧。

self.definesPresentationContext = true

OR -------------

searchController.hidesNavigationBarDuringPresentation = false

=>更多如果您想知道以下给出的Refrence可能有用: -

How to implement UISearchController in UITableView - SWIFT

UISearchController doesn't hide view when pushed