В моем представлении таблицы есть пользовательские ячейки, которые я инициализирую из класса UITableViewCell. У меня есть разделы для первых букв записей и есть indexPath, который создается динамически.
Я хотел добавить контроллер отображения для просмотра в таблицу. Таким образом, я сделал, создал все методы для фильтрации данных. Я уверен, что мои функции работают хорошо, потому что я печатаю количество массивов на экране для результатов поиска.
Моя проблема в том, что при первом просмотре времени данные отображаются на экране. Но когда я попал на вход поиска и набрал букву, я получаю ошибку 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'
. После того, как я использовал точку останова, я увидел, что моя обычная ячейка равна нулю после поиска. Данные существуют, но ячейка не инициализируется.
Вот код, который я использую для пользовательской инициализации ячейки:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ObjectCell";
SpeakerCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSDictionary *myObject = [[sections valueForKey:[[[sections allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)] objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
cell.label1.text = [myObject objectForKey:@"myValue"];
return cell;
}
Я считаю, что допустил ошибку, поставив контроль в IB. Поэтому я добавил скриншоты объектов:
Инспектор подключений для представления моей таблицы
Инспектор подключений для контроллера отображения поиска
EDIT: проблема действительно решена, я использовал UISearchBar вместо Search Display Controller, но, я думаю, эта проблема остается нерешенной. Поэтому я готов попробовать любые способы заставить его работать.