Использование UISearchDisplayController с данными, полученными из сети

StackOverflow https://stackoverflow.com/questions/1273656

Вопрос

У меня есть UITableViewController подкласс, который отображает список предустановленных категорий и извлекает список сайтов / URL-адресов для каждой из них.Я хочу добавить возможность поиска, которая позволяла бы осуществлять поиск по названию сайта.

Что я хочу, так это иметь обычный интерфейс поиска, который запускал бы поток поиска (который извлекал бы и обрабатывал результаты), а затем отображал бы его в таблице.Я изменил свой делегат таблицы, чтобы возвращать пользовательский набор ячеек, если UITableView не является единственной формой xib (т.е.это представление таблицы поиска):

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"RSSCatalogCell";

    if(tableView != self.tableView)
        return [searchController tableView:tableView cellForRowAtIndexPath:indexPath];

    // ... usual cell initialization for categories
}

Как только мой сетевой поток (созданный из searchBarSearchButtonClicked:) завершается, он запрашивает таблицу контроллера поиска для перезагрузки данных:

if(searchDisplayController.active)
    [searchDisplayController.searchResultsTableView reloadData];

Но я все еще вижу старую таблицу (с целыми каталогами), однако, похоже, она игнорирует касания.

Это было полезно?

Решение

Хорошо, я решил эту проблему (меня бесит, что когда вы четко пишете вопрос в какую-нибудь публичную группу / форум, вы можете быстро найти свою собственную ошибку, потратив на ее поиски несколько дней).

Проблема была в одном неправильном соединении в XIB, приведенный выше код работает отлично.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top