title: UISearchDisplayController does not update search results
body: <p>I have the following search setup in my app: </p>
  
  <pre><code>- (UISearchBar*)searchBar
  {
  
      if (!_searchBar) {
  
          _searchBar = [[UISearchBar alloc] init];
          _searchBar.delegate = self;
          _searchBar.placeholder = kSearchBarPlaceHolder;
      }
      return _searchBar;
  }
  - (UISearchDisplayController*)searchBarDisplayContr
  {
  
      if (!_searchBarDisplayContr) {
  
          _searchBarDisplayContr = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];
          _searchBarDisplayContr.delegate = self;
          _searchBarDisplayContr.searchResultsDataSource = self.tableView.dataSource;
          _searchBarDisplayContr.searchResultsDelegate = self.tableView.delegate;
          _searchBarDisplayContr.searchResultsTableView.backgroundColor = [UIColor clearColor];
          _searchBarDisplayContr.searchResultsTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  
      }
  
      return _searchBarDisplayContr;
  }
  
  - (NSMutableArray *)searchResults
  {
  
      if (!_searchResults) {
          _searchResults = [NSMutableArray arrayWithCapacity:_restaurants.count];
      }
  
      return _searchResults;
  }
  
  - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
  {
  
      [self.searchResults removeAllObjects];
  
      [self.restaurants enumerateObjectsUsingBlock:^(Restaurant *restaurant, NSUInteger idx, BOOL *stop) {
          if ([scope isEqualToString:@"All"] || [restaurant.name isEqualToString:scope]) {
  
              NSRange range = [restaurant.name rangeOfString:searchText
                                                     options:(NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch)];
  
  
              if (range.length &gt; 0) {
                  [self.searchResults addObject:restaurant];
              }
         }
  
      }];
  
  
  
  }
  
  - (BOOL)searchDisplayController:(UISearchDisplayController*)controller shouldReloadTableForSearchString:(NSString*)searchString
  {
      [self filterContentForSearchText:searchString
                                 scope:@"All"];
  
  
  
      dispatch_async(dispatch_get_main_queue(), ^(void) {
          for (UIView *v in controller.searchResultsTableView.subviews) {
              if ([v isKindOfClass:[UILabel class]]) {
                  ((UILabel *)v).text = kSearchResultsTableViewNoResultsLabel;
                  ((UILabel *)v).font = [UIFont mediumFontOfSize:20.0f];
                  ((UILabel *)v).textColor = [UIColor blackColor];
                  break;
              }
          }
      });
  
  
      return YES;
  }
  
  
  
  - (BOOL)searchDisplayController:(UISearchDisplayController*)controller shouldReloadTableForSearchScope:(NSInteger)searchOption
  {
      [self filterContentForSearchText:[self.searchBarDisplayContr.searchBar text]
                                 scope:@"All"];
  
      return YES;
  }
  </code></pre>
  
  <p>But for some reason when I search the searchResultsTableView is not updated / cellForRowAtIndexPath is not called. The tableView delegates and DataSource is setup in my storyboard. </p>
  
  <p>Any ideas why this is happening?</p>
  
  <p>UPDATE: </p>
  
  <pre><code> [self.tableView registerClass:[RestaurantsCell class] forCellReuseIdentifier:cellIdentifier];
  
      [self.searchBarDisplayContr.searchResultsTableView registerClass:[RestaurantsCell class] forCellReuseIdentifier:cellIdentifier];
  
  
  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  {
      return 1;
  }
  
  - (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
  {
      if (tableView == self.searchBarDisplayContr.searchResultsTableView) {
  
          return [self.searchResults count];
  
      } else {       
  
             return [self.restaurants count];
  
  
      }
      return 0;
  }
  
  - (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
  {
  
      RestaurantsCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
  
      Restaurant *restaurant;
  
      if (tableView == self.searchBarDisplayContr.searchResultsTableView) {
  
          if (self.searchResults.count &gt; 0) {
  
              restaurant = self.searchResults[indexPath.row];
  
  
          }
  
  
      } else {   
  
   if (self.restaurants.count &gt; 0) {     
  
            restaurant = self.restaurants[indexPath.row];
  
  }
  
      }
  
  
      if (restaurant) {
  
          cell.titleLabel.text = restaurant.name;
      }
      return cell;
  }
  </code></pre>