В раскадровке, как мне создать настраиваемую ячейку для использования с несколькими контроллерами?

Я пытаюсь использовать раскадровки в приложении, над которым я работаю. В приложении есть Списки и Пользователи , и каждый из них содержит коллекцию других (элементы списка, списки, принадлежащие пользователю). Соответственно, у меня есть классы ListCell и UserCell . Цель состоит в том, чтобы их можно было повторно использовать во всем приложении (то есть в любом из моих контроллеров tableview).

Вот где я столкнулся с проблемой.

Как мне создать настраиваемую ячейку табличного представления в раскадровке, которую можно повторно использовать в любом контроллере представления?

Вот конкретные вещи, которые я пробовал до сих пор.

  • В Контроллере №1 добавлена ​​ячейка-прототип, в качестве класса установлен мой подкласс UITableViewCell , задан идентификатор повторного использования, добавлены метки и подключены к выходам класса. В контроллере № 2 добавлена ​​пустая ячейка прототипа, установлен тот же класс и идентификатор повторного использования, что и раньше. Когда он запускается, метки никогда не появляются, когда ячейки отображаются в Контроллере №2. Прекрасно работает в контроллере №1.

  • Разработаны ячейки каждого типа в разных NIB и подключены к соответствующему классу ячеек. В раскадровке добавил пустую ячейку прототипа и установил ее класс и идентификатор повторного использования для ссылки на мой класс ячейки. В методах контроллера viewDidLoad эти файлы NIB зарегистрированы для идентификатора повторного использования. Когда показано, ячейки в обоих контроллерах были пустыми, как и в прототипе.

  • Сохранял прототипы в обоих контроллерах пустыми и устанавливал класс и повторно использовал идентификатор для моего класса ячейки. Создал пользовательский интерфейс ячеек полностью в коде. Ячейки отлично работают во всех контроллерах.

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

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

216
задан Dharmesh Dhorajiya 15 December 2015 в 20:24
поделиться