Пользовательское повторное использование ячеек таблицы/удаление

Я знаю, что подобные проблемы были опубликованы раньше, но я не могу найти решение для меня внутри них, поэтому, пожалуйста, несите меня...

У меня есть табличное представление с пользовательской ячейкой таблицы в xcode. В настоящее время ячейка представляет собой не что иное, как метку:

SiteFileCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
cell.fileNameLabel.text = [self.listDir.filesInfo objectAtIndex:indexPath.row];

Это отлично работает. В основном я занимаюсь структурой структуры каталогов. Когда я выбираю ячейку, она переходит на следующий уровень, перетаскивая новый столбец в стек навигационного контроллера и перезагружая все ячейки таблицы.

В этот момент я вижу часто сообщаемую ошибку:

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

Итак, следуя исследованиям, я вижу, что я должен регистрировать тип:

[self.tableView registerClass:[SiteFileCell class] forCellReuseIdentifier:@"FileCell"];

Если я это сделаю, все будет хорошо, но ни одна из ячеек не покажет никакой метки!

Я видел некоторую ссылку на, возможно, требующий специального кода в методе initWithStyle для класса ячеек, но я не могу решить, что там потребуется, так что может кто-то дать мне немного больше указателя, пожалуйста?

Ответ 1

Вместо того, чтобы регистрировать регистр класса, пин. Этот наконечник - это наконечник, в котором вы создали подкласс ячейки представления таблицы. Он содержит только один объект верхнего уровня, ячейку, и эта ячейка была назначена SiteFileCell. Presto, все будет работать.

В моей книге см. полное объяснение (с загружаемым кодом):

http://www.apeth.com/iOSBook/ch21.html#_custom_cells

См. подраздел "Проектирование ячейки в нибе".

Ответ 2

Если вы используете XIB для ячейки, вы можете установить идентификатор только в XIB файле.