加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 18:57:11 所属栏目:百科 来源:网络整理
导读:我正在使用 Cocoapods预发布0.36来构建私有动态框架并将其部署到应用程序包中.我使用resources属性来复制xibs,它们出现在app bundle中. s.subspec 'Views' do |ss| ... ss.resources = ['All/My/Folders/**/*.{xib,png}'] ... 我试图从xib加载可重用的控件,
我正在使用 Cocoapods预发布0.36来构建私有动态框架并将其部署到应用程序包中.我使用resources属性来复制xibs,它们出现在app bundle中.

s.subspec 'Views' do |ss|
    ...
    ss.resources = ['All/My/Folders/**/*.{xib,png}']
    ...

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

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

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

./Frameworks/MyPrivateFramework.framework/MyXib.nib

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

谢谢

解决方法

从这篇文章:

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

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

NSBundle(forClass: ClassInFramework.self)

然后从中加载xib:

NSBundle(forClass: ClassInFramework.self)
    .loadNibNamed("ClassInFramework",owner:loader,options:nil)

那很有效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读