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

Hide search bar of search display controller

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

然后我将其设置为显示在导航栏中,并在 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;
}

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

=> 试一试。

self.definesPresentationContext = 真

或-------------

searchController.hidesNavigationBarDuringPresentation = false

=> 更多如果你想知道下面的参考资料可能会有用:-

这样做

  1. 从故事板向搜索栏添加出口
  2. 然后您可以使用插座标识符通过添加以下行来隐藏搜索栏

searchBar.hidden = true