为什么在搜索栏中插入一些单词后会显示另一个表格视图?
在搜索框中写字之前
在搜索框中写完
以下是我正在使用的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *identifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
if (tableView == self.searchDisplayController.searchResultsTableView) {
cell.textLabel.text = [NSString stringWithFormat:@"%@", filteredFields[indexPath.row]];
}
else
{
cell.textLabel.text = [NSString stringWithFormat:@"%@", oriFields[indexPath.row] ];
}
return cell;
}
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@", searchText];
filteredFields = (NSMutableArray *)[oriFields filteredArrayUsingPredicate:resultPredicate];
}
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
[self filterContentForSearchText:searchString
scope:[[self.searchDisplayController.searchBar scopeButtonTitles]
objectAtIndex:[self.searchDisplayController.searchBar
selectedScopeButtonIndex]]];
return YES;
}
答案 0 :(得分:1)
搜索显示控制器管理搜索栏的显示以及显示搜索结果的表格视图。
使用搜索栏和视图控制器初始化搜索显示控制器,视图控制器负责管理要搜索的数据。当用户开始搜索时,搜索显示控制器将搜索界面叠加在原始视图控制器的视图上,并在其表视图中显示搜索结果。
引用答案 1 :(得分:0)
你可能使用NSMutableArray作为你的数据源...当你输入搜索时你不会清理它,所以你有两倍的值......不是吗?