Использование динамического пользовательского UITableViewCell в XCode 4.2, с раскадными страницами и UISeachDisplayController
Я использовал 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
Ответ на запрос
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
}
В качестве полного примера используйте образец кода с сайта Apple.
Пошаговая иллюстрация