Пользовательское повторное использование ячеек таблицы/удаление
Я знаю, что подобные проблемы были опубликованы раньше, но я не могу найти решение для меня внутри них, поэтому, пожалуйста, несите меня...
У меня есть табличное представление с пользовательской ячейкой таблицы в 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 файле.