如何显示"搜索显示控制器"使用按钮

时间:2014-03-20 15:10:04

标签: ios objective-c uisearchbar uisearchdisplaycontroller

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

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

   [self.searchDisplayController setActive:YES animated:YES]

我无法在View上看到UISearchBar。

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

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

任何帮助都将受到欢迎! 谢谢!

1 个答案:

答案 0 :(得分:4)

我意识到你已经尝试过了,但这就是我们这样做的方式并且有效:

我们将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];
}

希望有所帮助。