Я пытаюсь использовать раскадровки в приложении, над которым я работаю. В приложении есть Списки и Пользователи , и каждый из них содержит коллекцию других (элементы списка, списки, принадлежащие пользователю). Соответственно, у меня есть классы ListCell
и UserCell
. Цель состоит в том, чтобы их можно было повторно использовать во всем приложении (то есть в любом из моих контроллеров tableview).
Вот где я столкнулся с проблемой.
Как мне создать настраиваемую ячейку табличного представления в раскадровке, которую можно повторно использовать в любом контроллере представления?
Вот конкретные вещи, которые я пробовал до сих пор.
В Контроллере №1 добавлена ячейка-прототип, в качестве класса установлен мой подкласс UITableViewCell
, задан идентификатор повторного использования, добавлены метки и подключены к выходам класса. В контроллере № 2 добавлена пустая ячейка прототипа, установлен тот же класс и идентификатор повторного использования, что и раньше. Когда он запускается, метки никогда не появляются, когда ячейки отображаются в Контроллере №2. Прекрасно работает в контроллере №1.
Разработаны ячейки каждого типа в разных NIB и подключены к соответствующему классу ячеек. В раскадровке добавил пустую ячейку прототипа и установил ее класс и идентификатор повторного использования для ссылки на мой класс ячейки. В методах контроллера viewDidLoad
эти файлы NIB зарегистрированы для идентификатора повторного использования. Когда показано, ячейки в обоих контроллерах были пустыми, как и в прототипе.
Сохранял прототипы в обоих контроллерах пустыми и устанавливал класс и повторно использовал идентификатор для моего класса ячейки. Создал пользовательский интерфейс ячеек полностью в коде. Ячейки отлично работают во всех контроллерах.
Во втором случае я подозреваю, что прототип всегда переопределяет NIB, и если я убью ячейки прототипа, регистрация моего NIB для идентификатора повторного использования сработает. Но тогда я не смог бы настроить переходы от ячеек к другим кадрам, в чем действительно весь смысл использования раскадровок.
В конце концов, мне нужны две вещи: связать потоки на основе табличных представлений в раскадровке и определять макеты ячеек визуально, а не в коде. Я пока не понимаю, как получить и то, и другое.