У меня тоже была эта проблема, но пришлось решить ее по-другому. По сути, у меня есть имя контроллера представления MainViewController, в котором есть xib с именем MainViewController.xib. У этого пера свойство view установлено на владельца файла, который был MainViewController.
Я также создал MainView.xib, который содержал представление, которое собиралось программно добавить к представлению, определенному в MainViewController.xib, и его представлению. Он в основном инкапсулировал внутреннее представление, которое будет в представлении MainViewController.xib, а также установил для владельца файла значение MainViewController.
Таким образом, я хотел, чтобы MainViewController.xib загружался в качестве кончика для объекта MainViewController, а внутри MainViewController, в какой-то более поздний момент, я бы добавил внутреннее представление, указанное в MainView.xib.
Возникла пара проблем:
1.) В документах Apple я обнаружил, что при загрузке контроллера представления через раскадровку или перо:
"Если имя класса контроллера представления заканчивается словом« Controller », то как
в MyViewController он ищет файл пера, имя которого соответствует
имя класса без слова «Controller», как в MyView.nib.
Ищет файл пера, имя которого совпадает с именем представления.
Контроллер класса. Например, если имя класса MyViewController,
он ищет файл MyViewController.nib. "
Следовательно, вы не можете иметь перо MainView.xib, если у вас также есть перо MainViewController и хотите, чтобы MainViewController.xib был основным пером для MainViewController.
2.) Даже если вы удалите MainView.xib или переименуете его в что-то другое (в данном случае MainInternalView.xib), вы ДОЛЖНЫ удалить / очистить симулятор iOS, поскольку старый файл пера (MainView.xib) все равно останется в приложение. Он не перезаписывает весь пакет приложения, когда вы перестраиваете / перезапускаете свое приложение.
Если вы не хотите сбрасывать настройки содержимого (возможно, у вас есть данные, которые вы хотите сохранить), щелкните правой кнопкой мыши свое приложение в папке iOS Simulator, выберите «Показать содержимое пакета», найдите MainView.nib и удалите. Это. Xcode НЕ будет делать это автоматически для вас, когда вы перестраиваете, поэтому нам нужно вручную удалить старый кончик.
В целом, не делайте перья с именами MainViewController и MainView, то есть перья с одинаковым префиксом. Вызовите MainView.xib как-нибудь еще, например MainInternalView.xib.