如何加载与TableView相同的SearchResultsTableView?

时间:2014-01-02 15:16:27

标签: ios uitableview uisearchdisplaycontroller custom-cell

我是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;
}

0 个答案:

没有答案