我目前在Storyboard中使用UISearchDisplayController构建的默认配置,在那里我将UISearchBar和SearchDisplayController拖到现有的UITableViewController
上。因为它被拖到TableViewController上,所以我正在管理两个表 - self.tableView
和self.searchDisplayController.searchResultsTableView
。
我想要完成的是仅在用户打开此视图时将tableView
显示为默认表格,并反映为显示用户的搜索。如图(取自RW tutorial):
我想要实现的是,当你输入单词“egg”时,RecipeBookVC的tableView
将摆脱没有“egg”的行,所以你留下的结果是self.tableview
,无需在resultsTableView
中看到它。 (最好也不要隐藏导航栏,因此搜索感觉更像是“过滤器”而不是搜索)
谢谢!
答案 0 :(得分:1)
我认为您实际上并不需要搜索显示控制器。您只需要一个表视图(可能是UITableViewController
)和UISearchBar
。表视图显示包含数据的数组的内容。每当搜索查询更改时,您都会相应地更新该数组,并重新加载tableView以显示更新的数组数据。这将为您提供所需的过滤感觉。
要在表视图中显示数据,请使用
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
并以您使用的用户类型
获取查询- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
在您过滤作为数据源的阵列后,请致电[self.tableView reloadData]
。
我继续将a sample project与实施的方法一起搅打,所以我的意思更加清晰。希望这适用于你。