【问题标题】:How to show "Search Display Controller" using a button如何使用按钮显示“搜索显示控制器”
【发布时间】:2014-03-20 15:10:03
【问题描述】:

我有一个奇怪的要求,或者至少是我以前从未做过的事情......我有一个UITableView,该表的标题是UISearchBar。如果您点击该搜索栏,则会出现“搜索显示控制器”并让您搜索......但现在我需要删除该搜索栏并从按钮中调用“搜索显示控制器”。

问题是,如果我在调用(从按钮)时删除 SearchBar:

   [self.searchDisplayController setActive:YES animated:YES]

我在视图顶部看不到 UISearchBar。

我不知道如何解决这个问题...我已经尝试过:

  • self.tableView.tableHeaderView = nil 在 vi​​ewDidLoad 中,当触摸按钮时,我再次将 UISearchBar 设置为表头......它看起来很丑,动画一点也不流畅。
  • 隐藏搜索栏并在按下按钮时显示。 (我在表格视图的标题中有一个空白区域)并且动画非常糟糕,因为UISearchBar 首先显示在标题中,然后它被移到了视图的顶部......

我们非常欢迎任何帮助!! 谢谢!

【问题讨论】:

    标签: ios objective-c uisearchbar uisearchdisplaycontroller


    【解决方案1】:

    我知道您已经尝试过,但我们就是这样做的,而且效果很好:

    我们将 UISearchBar 添加到视图中(不是表格视图)。话虽这么说,如果您使用的是 UITableViewController,则不能这样做。您必须将 tableView 添加到 UIViewController。然后我们通过一个 Outlet 将它链接到 Controller,然后在 viewDidLoad 中将其设置为隐藏:

    self.searchBar.hidden = YES;
    

    然后创建一个选择器来再次显示 searchBar:

    - (IBAction)search:(id)sender
    {
      self.searchBar.hidden = NO;
    
      [self.searchBar becomeFirstResponder];
    
      [self.searchDisplayController setActive:YES animated:YES];
    }
    

    希望对您有所帮助。

    【讨论】:

    • 补充一点:导航栏下可以隐藏搜索栏,这样取消隐藏时搜索栏不会弹出。
    • 这很有用!我做到了。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    相关资源
    最近更新 更多