iOS8:如何从动态框架加载xib

Chr*_*ver 4 xcode ios cocoapods

我正在使用Cocoapods预发布0.36来构建私有动态框架并将其部署到应用程序包中.我使用resources属性来复制xibs,它们出现在app bundle中.

s.subspec 'Views' do |ss|
    ...
    ss.resources = ['All/My/Folders/**/*.{xib,png}']
    ...
Run Code Online (Sandbox Code Playgroud)

我试图从xib加载可重用的控件,如下所示:

NSBundle.mainBundle().loadNibNamed("MyXib", owner:loader, options:nil)

但这是失败的,因为它无法在我的嵌入式子框架中找到xib.实际的xib(nib)路径遵循以下模式:'

./Frameworks/MyPrivateFramework.framework/MyXib.nib

我的问题是,是否有一种简单的,代码无关的加载xib的方式,当在iOS 8框架中打包时它将起作用 - 或者我是否必须在上述路径中明确硬编码?上面的加载代码工作,直到我认为动态框架发生了变化.

谢谢

Chr*_*ver 17

从这篇文章:

http://artsy.github.io/blog/2015/01/04/cocoapods-and-frameworks/

我到达了从一个类中获取框架包的不可知解决方案,即:

NSBundle(forClass: ClassInFramework.self)
Run Code Online (Sandbox Code Playgroud)

然后从中加载xib:

NSBundle(forClass: ClassInFramework.self)
    .loadNibNamed("ClassInFramework", owner:loader, options:nil)
Run Code Online (Sandbox Code Playgroud)

那很有效.