2012-01-31 3 views
0

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

ли это сбой там? – Ilanchezhian

+0

Итак, у вас есть 2 стола? – Ilanchezhian

ответ

1

Здесь и Tableview бывают разного класса, так что не может быть равна, таким образом, изменить свой, если условие, как

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]; 
    } 
+0

Таблица работает отлично и отфильтрованная таблица, только когда дело доходит до представления detailView после фильтрации, оно ничего не делает. Имеет ли только одну строку с делегатом в поле зрения, mySearchBar.delegate = self; что этого недостаточно? –

+0

Я просто хочу подтвердить, что этот метод вызывается, когда вы выбираете ячейку ?????? –

+0

Когда я нажимаю ячейку, // - (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath // представляет detailView, а if-else решает, является ли это фильтрованным списком или нефильтрованным списком. Если я удалю if-else, он работает нормально, но я не могу получить фильтр, чтобы отображать в подробном представлении, т. Е. «If» ничего не делает –