我是ios开发的新手。 我在viewcontroller(而不是TableViewController)中有一个tableview(带有customcell)。我已经通过storybaord添加了searchDisplayController。我能够得到搜索结果,但问题是searchresultstableview和实际的tableview不一样。我无法使用自定义单元格填充searchresultstableview。这是我发布的代码。
请不要将我的问题标记为重复,因为我已经检查了很多问题/答案,它们基于TableViewController(不是普通的带ViewView的ViewController)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self.searchDisplayController.searchResultsTableView)
{
return [filtArr count];
}
else
{
return [myTestArr count];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cCell"];
if (cell == nil)
{
cell = [[CustCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cCell"];
}
if (tableView == self.searchDisplayController.searchResultsTableView)
{
//This line is showing the searchResultsTableview(but not customcell)
//cell.textLabel.text= [filtArr objectAtIndex:indexPath.row];
//No results and normal searchResultsTableview
cell.myLab.text = [filtArr objectAtIndex:indexPath.row];
}
else
{
cell.myLab.text = [myTestArr objectAtIndex:indexPath.row];
}
return cell;
}
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
[filtArr removeAllObjects];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@",searchText];
NSArray *tempArray = [myTestArr filteredArrayUsingPredicate:pred];
filtArr = [NSMutableArray arrayWithArray:tempArray];
}
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
[self filterContentForSearchText:searchString scope:
[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex: [self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
return YES;
}