我在我的搜索欄中有兩個範圍:城市和教堂。每次執行搜索時,兩個範圍都會顯示空白單元格,但它們確實有搜索結果。我如何顯示其相應的單元名稱?謝謝!如何顯示範圍內的搜索結果?
我想通這個問題是在我的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