У меня возникли проблемы с боковой панелью в этом приложении (в котором используется Storyboard), над которым я работаю. Боковая панель - UITableViewController
, и я хочу, чтобы панель поиска сверху, поэтому я положил объект Search Bar and Search Display Controller
в Раскадровка. У меня есть содержимое боковой панели в 5 статических ячейках, а панель поиска выполняет поиск в удаленной базе данных для получения результатов.iOS - Использование UISearchDisplayController на UITableViewController со статическими ячейками
Моя проблема заключается в том, что если мои результаты поиска содержат более 5 элементов, я получаю следующее сообщение об ошибке:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 5 beyond bounds [0 .. 4]'
Я не совсем уверен, что происходит за кулисами, но я абсолютно уверен, что несмотря на наличие следующего кода, количество строк, заданных для секции просмотра таблицы в Storyboard (5), переопределяет все.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (tableView == self.searchDisplayController.searchResultsTableView) {
return [[self filteredCappegoryArray] count];
} else {
return [super tableView:tableView numberOfRowsInSection:0];
}
}
Я хотел бы перейти на боковую панель, чтобы использовать динамические клетки, но один из моих клеток содержит вид контейнера, и XCode не позволяет мне иметь вид контейнера в ячейке прототипа. Мне было интересно, есть ли какие-то варианты, над которыми я должен работать над этой проблемой.
Эй, очень рад, что вы опубликовали это исправление 'indentationLevelForRowAtIndexPath'. Я отлаживал часами. –
Большое спасибо за публикацию решения для этого. У меня была такая же проблема, и у меня было пару часов, отлаживающих проблему. Снова спасибо! – Guerrix