У меня есть приложение с UIViewController, содержащее UITableView, с использованием пользовательской ячейки представления таблицы. Я использовал ту же собственную таблицу представления таблицы с UITableViewControllers успешно, но на этот раз это UITableView в UIViewController. Мои первые мысли заключались в том, что это действительно должно быть не иначе. Однако по какой-то причине в моей cellForRowAtIndexPath при начальной загрузке «cell» не является нулевым, как и должно быть, поэтому код для создания экземпляра пользовательской ячейки никогда не вызывается.Пользовательская проблема UITableViewCell в UITableView
Я создал пользовательскую ячейку как с помощью построителя интерфейса, так и вручную с его идентичными результатами. Единственное примечательное различие заключается в том, что код работает правильно при использовании его с UITableViewController, но сбой при использовании его с UIView, содержащим UITableView.
Я проверил, что мой идентификатор ячейки настроен правильно, и мой источник данных и делегаты правильно установлены в моем UIViewController. Пользовательская ячейка правильно настроена подкласса.
-(FaveCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
FaveCell *cell = (FaveCell*)[tableView dequeueReusableCellWithIdentifier:cellID];
if(cell == nil){
// this line of code is never reached
cell = [[FaveCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
}
/* code to load controls
...
*/
return cell;
}
Итак, когда код входит cellForRowAtIndexPath впервые, «клетка» должна быть нулевой, но это не так. Опять же, единственная заметная разница: UIView/UITableView vs UITableViewController. Это имеет смысл для всех? Может ли кто-нибудь предложить решение? Благодаря!
У вас есть NIB для вашей пользовательской ячейки? – hgwhittle
Да, для пользовательской ячейки есть наконечник – Pheepster
В противном случае выглядит и ведет себя ваша таблица, и единственным симптомом является то, что код 'if (cell == nil)' не вводится? – dasblinkenlight