UISearchDisplayController y célula personalizada

He implementado un UISearchDisplayController en UITableViewController. La búsqueda funciona, pero UISearhDisplayController crea una nueva tableView con una celda estándar, y mi tableView utiliza una celda personalizada. Otro problema es que uso un segue:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

y las celdas en searchResultsTableView no activan el segue ..

¿Cómo mostrar los resultados de búsqueda con la celda personalizada y segue funcionando?

Estos son los códigos:

 ... - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (tableView == self.searchDisplayController.searchResultsTableView){ return [nameFiltenetworkingObj count]; } else { return [sortedObj count]; }} - (CustomCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"customCell"; CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } if (tableView == self.searchDisplayController.searchResultsTableView) { cell.textLabel.text = [[sortedObj objectAtIndex:indexPath.row] valueForKey:@"Name"]; } else { cell.nameLabel.text = [[sortedObj objectAtIndex:indexPath.row] valueForKey:@"Name"]; cell.countryLabel.text = [[sortedObj objectAtIndex:indexPath.row] valueForKey:@"Country"]; cell.bottleImageView.image = [UIImage imageNamed:[[sortedObj objectAtIndex:indexPath.row] valueForKey:@"Image"]]; } return cell; } //The codes for filtering the results and update of searchResultsTableView (not necessary for this question I think): - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope { [nameFiltenetworkingObj removeAllObjects]; for(NSDictionary *obj in sortedObj) { NSString *objName = [obj objectForKey:@"Name"]; NSRange range = [objName rangeOfString:searchText options:NSCaseInsensitiveSearch]; if (range.location != NSNotFound) { [nameFiltenetworkingObj addObject:obj]; }}} - (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { [self filterContentForSearchText:searchString scope: [[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]]; return YES;} - (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption { [self filterContentForSearchText:[self.searchDisplayController.searchBar text] scope: [[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:searchOption]]; return NO;} ... 

Estoy usando Storyboard como interfaz.

En realidad es muy fácil de hacer, pero encontré muchas soluciones complicadas a medio path. Use esta pieza fácil y SearchResultsTableView se ha ido:

 - (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { ... self.searchDisplayController.searchResultsTableView.hidden=YES; return YES; }