UISearchDisplayController delete Row не удаляется - PullRequest
0 голосов
/ 22 ноября 2011

Когда мой запрос microsoftSQL успешно удаляет строку из БД, я также удаляю указанную строку из моих «локальных данных»

Это работает, как и ожидалось, если вы не «ищете»

Когдау вас есть результаты поиска, и вы удаляете строку, фактически не удаляя ее с анимацией.Если я повторно наберу свой поисковый запрос, он исчезнет, ​​как и предполагалось.

Итак ... есть ли способ оживить удаление строки в контроллере uisearchdisplaycontroller или есть способ перезагрузить таблицу результатов поиска?Или я должен просто отключить возможность удаления при поиске?

            [itemAutoIDRows removeObjectAtIndex:currentRow];
            [itemIDRows removeObjectAtIndex:currentRow];
            [itemNameRows removeObjectAtIndex:currentRow];
            [qtyOrderedRows removeObjectAtIndex:currentRow];
            [qtyReceivedRows removeObjectAtIndex:currentRow];



            NSIndexPath *indexPath = [NSIndexPath indexPathForRow:currentRow inSection:0];
            NSArray *indexPathArray = [[NSArray alloc] initWithObjects:indexPath, nil];
            [self.POTableView deleteRowsAtIndexPaths:indexPathArray withRowAnimation:UITableViewRowAnimationFade];
            break;
            [indexPathArray release];

Этот код прекрасно работает при использовании только обычного представления таблицы, но не анимирует и не обновляет представление таблицы результатов поиска.Есть идеи?

1 Ответ

1 голос
/ 22 ноября 2011

searchResultsTableView работает как любое другое табличное представление. после удаления элемента из его источника данных вы отправляете deleteRowsAtIndexPaths:withRowAnimation:, и он должен работать нормально. Ваш код выше только изменяет self.POTableView. Те же правила применяются, что и к любому табличному представлению, если вы изменяете источник данных и хотите постепенно обновлять табличное представление, убедитесь, что вы сохраняете согласованность изменений между источником данных и структурой таблицы.

...