0

我使用谓词过滤表。它工作得很好,还可以显示每个单元格的 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;
}
4

1 回答 1

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]; 
    }
于 2012-01-31T09:17:50.817 回答