如何使用按钮显示“搜索显示控制器”
Posted
技术标签:
【中文标题】如何使用按钮显示“搜索显示控制器”【英文标题】: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
在 viewDidLoad 中,当触摸按钮时,我再次将 UISearchBar 设置为表头......它看起来很丑,动画一点也不流畅。
隐藏搜索栏并在按下按钮时显示。 (我在表格视图的标题中有一个空白区域)并且动画非常糟糕,因为UISearchBar
首先显示在标题中,然后它被移到了视图的顶部......
我们非常欢迎任何帮助!! 谢谢!
【问题讨论】:
【参考方案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];
希望对您有所帮助。
【讨论】:
补充一点:导航栏下可以隐藏搜索栏,这样取消隐藏时搜索栏不会弹出。 这很有用!我做到了。非常感谢以上是关于如何使用按钮显示“搜索显示控制器”的主要内容,如果未能解决你的问题,请参考以下文章