Использование раскадровки XCode для создания экземпляра контроллера представлений, который использует XIB для его дизайна

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

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

Я бы предпочел не перемещать все из XIB в раскадровку, но держать ее в своем отдельном XIB.

Как я могу получить этот UIViewController в раскадровке для загрузки моего XIB?

Ответ 1

  • Удалить представление, содержащееся в контроллере представления в раскадровке.

  • Затем укажите представление, настроив файл с одним и тем же именем как класс контроллера вида. Например, если контроллер вида класс называется MyViewController, назовите свой xib файл MyViewController.xib.

РЕДАКТИРОВАТЬ Обратите внимание, что Swift seed 5 начал нарушать эту технику, потому что он искажает имя файла .xib, который он ищет. См. Мой ответ здесь для обходных решений: fooobar.com/info/15503/... В основном это совпадение имен было сломанным в iOS 8, но затем Apple раскаялся и исправил его так, чтобы он снова работает в iOS 9.