2017-01-17 9 views
3

私はPodフレームワークにCalendarCell.xibとCalendarCell.swift UIViewサブクラスを持っています。 CalendarCell.swiftにはコンセントが接続されています。私は私のポッドをインストールする場合自分のポッドからNIBをロードできませんでした

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

私はXIBファイルを見ることができますが、それがクラッシュして、今それがいるようです:私は、バンドルリソースを作成し、私のpodspecファイルで

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

:実行時に私はこのエラーを取得しますxibファイルとその対応ファイルは異なるバンドルにあります。

助けていただけたら幸いです!

答えて

8

そうですが、xibは別のバンドルに保存されています。 xibsバンドルのパスを見つけ、メインバンドルからロードするのではなく、そのバンドルからすべてのxibsをロードする必要があります。

スウィフト3で、バンドルのパスを見つけるには:

だから、
let bundle = Bundle(for: YourClass.self) 

、あなたはそのバンドルからあなたUINibをロードする必要があります。

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

とあなたUITableView/UICollectionViewに登録あなたがこの目的のために必要ならば:

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

私はあなたのsoluを作ることができませんでした私は正しい方法を考え出しました。 'let bundle = Bundle(for CalendarCell.self) nib = UINib(nibName:" CalendarCell "、bundle:bundle)'あなたのお手伝いをしてくれてありがとうございました: –

+1

はい、多少の違いがあります。ポッドのプロジェクトやファイルを整理する方法です。このソリューションは私のために働いた。とにかく、一般的な方法はxibsを別のバンドルからロードすることです。ありがとうございます:) –

+0

私の魅力のように働いて、私は答えを編集しました。 –

関連する問題