如何使用UISearchBar只搜索UITableView的节标题?

时间:2012-11-03 18:14:37

标签: iphone cocoa-touch uitableview nsmutablearray uisearchbar

我有UITableView部分和许多行。

我不需要详细搜索,浏览tableview中的所有单元格。

所有章节标题都包含在NSMutableArray

是否有一种简单的方法可以只搜索UITableView的部分标题,而忽略单元格内容?

谢谢!

2 个答案:

答案 0 :(得分:2)

你必须在表头上插入uisearchbar。接下来,您必须实现一个方法,使用标题搜索数组并创建一个包含要显示的元素的新数组(标题和单元格,它们也可以是两个数组,您必须根据常规应用程序工作流程选择)和重装表。

答案 1 :(得分:1)

请参阅this Apple Sample实现 - 请注意名为

的函数
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope

这里,而不是:

for (Product *product in listContent)

你可以把:

for (NSString *sectionHeader in YourSectionArray)

根据您的需要改变此功能的实现,您应该完成。 (比如,您可以忽略范围内容,因为您只想搜索只是简单字符串的节标题)此功能只是搜索例程,您可以根据需要进行更改。它实际上是通过以下委托函数调用的 - 您不想更改:

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString

请注意,我建议的这个控件是一个内置的tableview控件,它已经与搜索栏一起提供。它是:

UITableViewController <UISearchDisplayDelegate, UISearchBarDelegate>

如果您自己添加了搜索栏,则需要将这些代理添加到您的UITableView .h文件中,就像我上面所做的那样。如果你想复制Apple的示例实现,不用担心。