【问题标题】:Hide search bar of search display controller隐藏搜索显示控制器的搜索栏
【发布时间】:2016-04-09 16:31:37
【问题描述】:

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

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

self.searchDisplayController.displaysSearchBarInNavigationBar = true;

但是,我一开始想隐藏它,而vewdidload中的以下行没有任何效果。

self.searchDisplayController.searchBar.hidden = true;

谁能建议怎么做?

提前感谢您的任何建议。

编辑:

我想我已经发现你不能同时拥有 searchBar.hidden = true 和 displaySearchBarInNavigationBar。这对我来说很好,因为我只想要一个。所以我试着把这两种情况分开。

首先在视图中确实加载了,我把

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;
}

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

【问题讨论】:

  • 您只想隐藏搜索栏吗?那么searchBar.hidden = true就够了。
  • 这让我可以使用未声明的标识符
  • 检查答案,如果您在添加出口时遇到问题,只需在我的帖子中发表评论,我会帮助您。

标签: ios hide searchbar


【解决方案1】:

这样做

  1. 从 Storyboard 向 searchBar 添加一个出口
  2. 然后你可以使用outlet标识符通过添加以下行来隐藏searchBar

searchBar.hidden = true

【讨论】:

  • 我创建了插座,但它似乎没有打开和关闭搜索栏,即 true 或 false 似乎没有任何效果。也许我应该为 searchDisplayController 创建一个插座并尝试切换它?
  • 你可以试试,但这不是必须的。
【解决方案2】:

=> 试试看。

self.definesPresentationContext = true

或者-------------

searchController.hidesNavigationBarDuringPresentation = false

=> 如果你想知道下面给出的参考可能会有用:-

How to implement UISearchController in UITableView - SWIFT

UISearchController doesn't hide view when pushed

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    相关资源
    最近更新 更多