首页 文章

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

提问于
浏览
2

我有一个奇怪的要求,或者至少我之前从未做过的事情......我有一个 UITableView ,该表的 Headers 是 UISearchBar . 如果您点击该搜索栏,"Search Display Controller"会显示并让您搜索...但现在我需要删除该搜索栏并从按钮调用"Search Display Controller" .

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

[self.searchDisplayController setActive:YES animated:YES]

我无法在View的顶部看到UISearchBar .

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

在viewDidLoad中

  • self.tableView.tableHeaderView = nil ,当我触摸按钮时,我再次将UISearchBar设置为表头...它看起来很丑,动画根本不流畅 .

  • 隐藏搜索栏并在按下按钮时显示它 . (我在tableview的 Headers 中得到一个空白区域)并且动画非常糟糕,因为 UISearchBar 首先显示在 Headers 中并且它被移动到视图的顶部...

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

1 回答

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

    希望有所帮助 .

相关问题