1

I have strange problem with UISearchDisplayController.

My code is following:

numberOfRowsInSection:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
  if ([[self searchDisplayController] isActive])
  {
    return [self.itemsFound count];

  } else {
    return [self.items count];
  }

  return [self.items count];
}

cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  FavouriteTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

  if (!cell)
  {
    cell = [[FavouriteTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  }

  Facilities *f = nil;

  if ([[self searchDisplayController] isActive])
  {
    f = [self.itemsFound objectAtIndex:indexPath.row];

  } else {
    f = [self.items objectAtIndex:indexPath.row];
  }

  [cell.favouriteButton addTarget:self action:@selector(toggleFavourite:) forControlEvents:UIControlEventTouchUpInside];
  [cell.titleLabel setText:f.name];

  return cell;
}

next:

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
  NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@",searchText];

  self.itemsFound              = [self.items filteredArrayUsingPredicate:resultPredicate];
}

shouldReloadTableForSearchString:

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {

  self.itemsFound = nil;

  [self filterContentForSearchText:searchString
                           scope:[[self.searchDisplayController.searchBar scopeButtonTitles]
                                  objectAtIndex:  [self.searchDisplayController.searchBar
                                                 selectedScopeButtonIndex]]];
  return YES;
}

My table:

table

If I type letters, which are on the list:

after typing letter a

Results exist but are not showing on a list.

On next picture there are no results and the screen shows correct info.

no results

I have no idea why I can not show results on second screen while results are (displayed on console).

Do you have any idea ?

Thanks for your time.

rmaddy
  • 314,917
  • 42
  • 532
  • 579
Nizzre
  • 275
  • 1
  • 6
  • 14

0 Answers0