我在我的搜索栏中有两个范围:城市和教堂。每次执行搜索时,两个范围都会显示空白单元格,但它们确实有搜索结果。我如何显示其相应的单元名称?谢谢!如何显示范围内的搜索结果?
我想通这个问题是在我的cellForRowAtIndexPath
if (tableView == self.searchDisplayController.searchResultsTableView) {
if ([searchBar.scopeButtonTitles isEqual: @"City"]) {
cell.textLabel.text = [[filteredResult objectAtIndex: indexPath.row] objectForKey: @"Places"];
}
else if ([searchBar.scopeButtonTitles isEqual: @"Church"]) {
cell.textLabel.text = [[filteredResult objectAtIndex: indexPath.row] objectForKey: @"Church"];
}
}
else {
...
}
[cell setAccessoryType: UITableViewCellAccessoryDisclosureIndicator];
return cell;
这是我的搜索:
- (void)filterListForSearchText:(NSString *)searchText scope:(NSString *)scope
{
[filteredResult removeAllObjects];
if ([scope isEqualToString: @"City"]) {
for (NSDictionary *dictionarySearch in allRegion) {
for (NSDictionary *citySearch in [dictionarySearch objectForKey: @"Cities"]) {
[citySearch objectForKey: @"Cities"];
NSRange rangeSearch = [[citySearch valueForKey: @"Places"] rangeOfString: searchText options: (NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)];
if (rangeSearch.location != NSNotFound) {
[filteredResult addObject: citySearch];
}
}
}
}
if ([scope isEqualToString: @"Church"]) {
for (NSDictionary *dictionarySearch in allRegion) {
for (NSDictionary *citySearch in [dictionarySearch objectForKey: @"Cities"]) {
for (NSDictionary *churchSearch in [citySearch objectForKey: @"Churches"]) {
[churchSearch objectForKey: @"Churches"];
NSRange rangeSearch = [[churchSearch valueForKey: @"Church"] rangeOfString: searchText options: (NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)];
if (rangeSearch.location != NSNotFound) {
[filteredResult addObject: churchSearch];
}
}
}
}
}
}
谢谢@Foram的修正。 ;) – Jahm