Использование динамического пользовательского UITableViewCell в XCode 4.2 с раскадровками и UISeachDisplayController - PullRequest
14 голосов
/ 07 декабря 2011

Я использовал Xcode 4.2 для создания приложения iOS на основе раскадровки.Один из моих экранов содержит UITableViewController, использующий динамические настраиваемые ячейки.

Пока - все хорошо.

Теперь я хотел добавить UISearchDisplayController, чтобы разрешить фильтрацию моего списка.

По какой-то причине UISearchDisplayController не отображает мои пользовательские ячейки, и я не могу найти способ его принудительно ...

Вот как выглядит мой метод cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"QueueListCell";
    QueueListTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[QueueListTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                             reuseIdentifier:CellIdentifier];
    }
    assert(cell);

    if ([tableView isEqual:self.searchDisplayController.searchResultsTableView]) {
        indexPath = [_indexPathsForSearchResults objectAtIndex:indexPath.row];
    }

    // Set up the cell...
    NSDictionary* itemDict = [_ListItems objectAtIndex:indexPath.row];

    cell.labelQueueName.text = [itemDict objectForKey:kQueueName];
    cell.labelQueueNumItems.text = [[itemDict objectForKey:kQueueNumItems] stringValue];

    return cell;    
}

Есть мысли о том, как заставить это работать?Я имею в виду, что моя таблица UISearchDisplayController показывает правильное количество результатов (я знаю, что, поскольку я могу нажимать на них, и я добавил NSLog, чтобы сообщить мне, что я нажимаю ...)

Этомое табличное представление This is my table view

Вот так выглядит таблица отображения поиска ... This is how the search display table looks like...

Моя проблема / вопрос в том, как заставить табличное представление UISearchDisplayController показывать мои пользовательские ячейки?

Любая помощь приветствуется ...

Реувен

1 Ответ

27 голосов
/ 07 декабря 2011

Ответ, специфичный для запроса

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
}

Например, у вас есть пример кода с сайта Apple .

Пошаговая иллюстрация

...