如何在搜索后显示DetailView

时间:2012-01-31 09:04:44

标签: iphone xcode filtering predicate detailview

我使用谓词来过滤表格。 它工作得很好,也可以显示每个单元格的detailView。

但是在过滤后,它无法在detailView中显示已过滤的列表。 单元格在按下时会变为蓝色,但不会切换到detailView。

我在这里缺少什么?

代码看起来像这样。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];

    Person *person;

    if (tableView == self.searchDisplayController.searchResultsTableView)
    {
        person = [self.filteredPeople objectAtIndex:indexPath.row];
    }
    else
    {
        person = [self.people objectAtIndex:indexPath.row]; 
    }


    dvController.title = person.firstName;   

    dvController.price = person.sjuName;   

    dvController.link = person.sexName;    

    dvController.picture = [UIImage imageNamed:person.femName];   


    [self.navigationController pushViewController:dvController animated:YES];

    [dvController release];
     dvController = nil;
}

1 个答案:

答案 0 :(得分:1)

这里两个tableView都是不同的类,因此不能相等,因此将if条件更改为

if ([tableView class] != [UITableView class]) // if it's is of type UISearchResultsTableView
    {
        person = [self.filteredPeople objectAtIndex:indexPath.row];
    }
    else
    {
        person = [self.people objectAtIndex:indexPath.row]; 
    }