UISearchDisplayController - почему мое представление результатов поиска содержит пустые ячейки?
Я собираюсь сходить с ума здесь, в моей базе данных Core Data у меня много пользователей, я подключил базу данных к контроллеру таблиц через NSFetchedResultController, и когда представление загружается, я вижу всех своих пользователей, и я могу выполнить толчок к детализированному контроллеру представления через сеанс раскадровки ... пока, черт возьми, мое табличное представление содержит пользовательскую ячейку с представлением изображения и 2 uitextlabels, которым всем назначены значения тегов ..
Теперь, когда я выполняю поиск, я создаю новый NSFetchedResultController с предикатом и выполняю executeFetch .. Затем я получаю свойство fetchedObjects, которое содержит совпадающих пользователей, поэтому поисковый запрос также работает как шарм .. во всех мои источники данных tableviews Я проверяю, если self.tableView == self.searchdispl.view, чтобы увидеть, к какому контроллеру я должен запрашивать данные. Во всех делегатах контроллеров я проверяю, какой контроллер активен, поэтому я знаю, какое представление перезагрузить. Если в журнал заносится много данных, все в порядке за кулисами, методы делегата и источника данных используют правильное представление и fetchcontroller.
В моем cellForRowAtIndexPath я могу выйти из моего user.name, и это всегда правильно, также при поиске.
Проблема заключается в том, что в представлении UISearchDisplayController, которое находится сверху, есть только пустые ячейки, если только я не установил ячейку динамического прототипа UITableViewControllers в базовую, тогда оба табличных представления содержат эту метку с именем пользователя! Передача из ячейки все еще не работает, но в ячейке есть данные.
Кажется, что представление UISearchDisplayControllers - это общее представление, по крайней мере, когда речь идет о сегментах и разметке ячеек ...
Я проверил все соединения из UISearchDisplayController с моим UITableViewController, и все выглядит нормально ...
Почему представление SearchDisplayControllers не принимает мою разметку ячейки и не выполняет переход?
Спасибо :)
Обновление: только что выяснил, что идет не так, но пока не нашел решения. В моем cellForRowAtIndexPath ячейка всегда настроена в качестве ячейки по умолчанию, когда в этом методе используется searchdisplayview. Действительно ли мне нужно создать свою ячейку в коде для работы uisearchdisplay? Почему он не может использовать настроенную ячейку из раскадровки?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"PersonCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSLog(@"Default Cell");
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSFetchedResultsController *controller = tableView == self.tableView ? self.fetchedResultsController : self.fetchedResultsControllerForSearch;
Person *p;
p = [controller objectAtIndexPath:indexPath];
[(UILabel*) [cell viewWithTag:1] setText:p.name];
[(UILabel*) [cell viewWithTag:2] setText:@"Status"];
if(p.avatarImage){
UIImage *avatar = [[UIImage alloc] initWithData:p.avatarImage];
[(UIImageView *) [cell viewWithTag:3] setImage:avatar];
}
return cell;
}