2015-07-28 5 views
5

Я создаю библиотеку с Cocoapods и Swift 1.2. У меня есть раскадровка, которую я должен загрузить в своей библиотеке. Хотя, я всегда получаю ту же ошибку:Загрузка раскадровки из рамки

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'Main' in bundle`.

То, что я пробовал:

  • кладет раскадровку в папке Classes
  • кладет раскадровку в папке Assets
  • удалить мой приложение с устройства, очистка проекта и повторная сборка.
  • Использование UIStoryboard(name:"Main", bundle:nil)
  • Использование UIStoryboard(name:"Main", bundle:NSBundle(forClass:self))
  • Использование UIStoryboard(name:"Main", identifier:myIdentifier)

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

Попытка вызвать storyboard!.instantiateViewControllerWithIdentifier(someIdentifier) из контроллера начального представления всегда приводила к тому, что контроллер вида не был найден, хотя я могу ясно видеть, что есть контроллер вида с этим идентификатором. Как я могу исправить эту проблему?

+0

'NSBundle (forClass: self)' ... является 'self' классом в том же комплекте, что и раскадровка? – nhgrif

+0

@nhgrif Да, это так. Файл раскадровки и класс находятся в одной папке. – user26830

+0

Разве Раскадровка добавлена ​​к цели? Вы можете проверить это в Инспекторе файлов (в правой боковой панели). – Glorfindel

ответ

2

Обнаружена проблема. Просто глупо, но после удаления Main.storyboard из проекта я не удалял его из настроек проекта. Попытка загрузить его в качестве начального контроллера. После изменения настроек UIStoryboard(name:"Main", bundle:NSBundle(forClass:self) работает правильно.

Смежные вопросы