Как отобразить DetailView после поиска - PullRequest
0 голосов
/ 31 января 2012

Я использую предикат для фильтрации таблицы. Он работает очень хорошо, а также отображает 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 Ответ

1 голос
/ 31 января 2012

Здесь оба 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]; 
    }
...