Подтвердить что ты не робот

Странная ошибка при добавлении элементов в ячейки прототипа в раскадровке-IB

У меня довольно большой проект (~ 20 сцен). Один из них - TableViewController с пользовательским классом UITableViewController. Я дал ячейке идентификатор повторного использования и добавил к ней ярлык. Когда я пытаюсь и Ctrl + Перетащите ярлык в заголовочный файл UITableViewController, чтобы создать выход, я получаю следующую ошибку:

Ошибка: нелегальная конфигурация: соединение "tableInfoView" не может иметь прототип объекта в качестве места назначения.

Что это? Я не замечаю ничего очевидного? Или мне нужно создать собственный класс ячеек и перетащить на него выход? Если да, то каким образом я могу указать данные, которые однозначно отображаются для каждой ячейки из UITableViewController?

4b9b3361

Ответ 1

Фактически вы не можете просто сделать выход из прототипа динамической ячейки в контроллере представления делегата UITableView.

Вам потребуется подкласс UITableViewCell, а затем присвоить этот класс прототипу.

Затем вы можете Ctrl-Drag из метки в заголовочный файл подкласса UITableViewCell.

Наконец, вы можете получить доступ к этой розетке в коде делегата после импорта в него заголовочного файла UITableViewCell.

Это описано Apple там в разделе "Техника для динамического содержимого строки".

Ответ 2

или вы можете присвоить метке метку (например, 100) и использовать

myLabel = [myTableView viewForTag:100];

чтобы получить метку

Ответ 3

У меня была такая же ошибка. Просто добавьте еще одну потенциальную первопричину для будущих читателей:

В моем случае я скопировал элемент управления (кнопка в этом случае) из одной ячейки прототипа в следующую и действие все еще ссылалось на соседнюю ячейку. В моей таблице несколько разных прототипов.

Тот факт, что он по сути был надлежащим подклассом UITableViewCell, который был надлежащим образом связан с прототипом ячейки, затруднял фактически увидеть ошибку.

Ответ 4

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

Это тоже может быть вашей проблемой. просто перейдите один раз.

Ответ 5

Пометьте метку, и вы можете достигнуть метки в любом месте viewcontroller, например, с помощью viewWithTag из представления таблицы.

    UILabel *destinationLabel = (UILabel *)[self.tableView viewWithTag:1];


    destinationLabel.text = @"Label Destaination";

Ответ 6

Установите правильный идентификатор повторного использования, используемый в .m файле в Storyboard для ячейки Prototype. У меня была такая же ситуация, и это помогло мне

Ответ 7

Сделав все правильно, если проблема все еще существует, просто удалите все розетки и аккуратно присоединитесь к ним, и это сработало для меня очень хорошо.