【问题标题】:iOS8: How to load xib from Dynamic FrameworkiOS8:如何从动态框架加载 xib
【发布时间】:2015-03-04 23:20:18
【问题描述】:

我正在使用 Cocoapods 预发布 0.36 来构建私有动态框架并将其部署到应用程序包中。我正在使用资源属性来复制 xib,它们显示在应用程序包中。

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 框架中时可以工作 - 还是我必须在上述路径中显式地硬编码?上面的加载代码一直有效,直到我认为动态框架发生了变化。

谢谢

【问题讨论】:

    标签: ios xcode cocoapods


    【解决方案1】:

    来自这里的这篇文章:

    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)
    

    而且成功了。

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 2023-03-16
      • 2019-10-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多