2017-01-17 19 views
3

У меня есть календарь CalendarCell.xib и подклассы CalendarCell.swift UIView в моей структуре Pod. CalendarCell.swift имеет выходы, связанные с его представлением. Во время выполнения я получаю эту ошибку:Не удалось загрузить NIB из моего собственного Pod

Could not load NIB in bundle: 'NSBundle (loaded)' with name 'CalendarCell'

В моем файле podspec я создал набор ресурсов:

s.resource_bundles = { 'Resources' => ['MyFramework/**/*.{xib,xcassets}'] } 

Если я установлю мой стручок я могу увидеть файл XIb, но он выходит из строя, и теперь кажется, что xib-файл и его быстрый экземпляр находятся в разных пакетах.

Любая помощь будет оценена!

ответ

8

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

Чтобы найти путь к расслоению, в Swift 3:

let bundle = Bundle(for: YourClass.self) 

Таким образом, вы должны загрузить ваш UINib из этого пучка:

let nib = UINib(nibName: "YourXibName", bundle: bundle) 

и зарегистрировать его в ваш UITableView/UICollectionView , если вам это необходимо для этого:

self.tableView.register(nib, forCellReuseIdentifier: "cellIdentifier") 
+2

По какой-то причине я не смог сделать ваше решение но я понял правильный путь. 'let bundle = Bundle (для: CalendarCell.self) let nib = UINib (nibName:« CalendarCell », bundle: bundle)' Спасибо за вашу помощь, сохранили мой день :) –

+1

Да, могут быть некоторые различия, возможно в том, как вы организуете проект или файлы Pods. Это решение сработало для меня. Во всяком случае, общий способ - загрузить xibs из другого пакета. Спасибо тоже :) –

+0

Работал как очарование для меня, я отредактировал ответ. –

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

  • Нет связанных вопросов^_^