Добавить ячейку в таблицу UISearchDisplayController

У меня есть табличное представление с searchDisplayController. Когда я ищу какой-то текст, я успешно отображаю результаты на экране. Моя проблема возникает, когда я хочу добавить ячейку к существующим результатам. Добавление ячейки должно быть сделано, когда searchDisplayController активен.

То есть:

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        NSMutableDictionary * dict ;
        BOOL isSearchView = tableView == self.searchDisplayController.searchResultsTableView;
        if (isSearchView) {
            dict = [searchTasks objectAtIndex:indexPath.row];
            [self.searchDisplayController.searchResultsTableView deselectRowAtIndexPath:indexPath
                                                                               animated:YES];
        }
        else{
            dict = [self.tasks objectAtIndex:indexPath.row];
            [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
        }
            Task * task = [self getsomeTask];
            NSIndexPath *  ip = [NSIndexPath indexPathForRow:indexPath.row+1  
inSection:indexPath.section];
            if (isSearchView) {
                [searchTasks insertObject:task atIndex:ip.row];
                [self.searchDisplayController.searchResultsTableView  
                                        insertRowsAtIndexPaths:@[ip]
                                        withRowAnimation:UITableViewRowAnimationRight];

    }

после того, как это выполнено, и после последней строки insertRowsAtIndexPaths:@[ip],

код выполняет:

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

Что хорошо, и здесь он выбирает первый вариант, который верен в соответствии с логикой программы. Но это потерпело крах и после этого выполнения это никогда не вызывает

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

функция делегата UITableview.

И дает мне ошибку:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

Я не могу понять причину, по которой он не вызывает функцию cellForRowAtIndexPath после функции rowcount.

Какие-либо предложения?

0 ответов

Другие вопросы по тегам