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 に答える