当前位置:  开发笔记 > IOS > 正文

无法从我自己的Pod加载NIB

如何解决《无法从我自己的Pod加载NIB》经验,为你挑选了1个好方法。

我的Pod框架中有一个CalendarCell.xib和一个CalendarCell.swift UIView子类.CalendarCell.swift具有连接到其视图的出口.在运行时我收到此错误:

无法在捆绑中加载NIB:'NSBundle(已加载)',名称为"CalendarCell"

在我的podspec文件中,我创建了一个bundle资源:

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

如果我安装我的Pod我可以看到xib文件,但它崩溃了,现在似乎xib文件和它的swift对应物在不同的包中.

任何帮助,将不胜感激!



1> Nicola Gianc..:

你是对的,xib存储在一个不同的包中.您需要找到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")


出于某种原因,我无法使你的解决方案有效,但我找到了正确的方法.`let bundle = Bundle(for:CalendarCell.self)让nib = UINib(nibName:"CalendarCell",bundle:bundle)`谢谢你的帮助,救了我的一天:)
推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有