如何在iOS中的静态库中添加xib文件

2024-01-13

我正在尝试在静态库中添加 xib 文件或任何其他视图控制器文件,但我无法这样做。你能帮我么?

如果可以的话请添加完整的源代码

第一个视图中的“是”按钮。当单击该按钮时,新的视图控制器会出现一些内容(比如说背景颜色的变化)。如何为此创建静态库?这样我就可以在另一个项目中使用它?

提前致谢


如果您想在构建静态库时使用界面构建器构建界面,则需要制作一个捆绑包并将其与您的库一起分发。

在 Xcode 中:

  1. 文件>新建>目标
  2. 从 OS X 框架和库部分选择“捆绑包”
  3. 填写详细信息。捆绑框架应该是核心基础。

然后,您需要与框架同时编译您的包。将捆绑包添加到框架的“目标依赖项”构建阶段。

当您制作 xib 时,您将其目标定为您创建的新捆绑包。

然后,当您在派生数据目录中编译框架时,您将在框架二进制文件旁边找到已编译的包。您可以将其与框架二进制文件一起提供给第三方。

那么如何在代码中引用这个包呢?在 iOS 中,无法加载捆绑包,并且您的捆绑包实际上将位于第三方的 iOS 应用程序主捆绑包内。您可以在 NSBundle 上创建一个类别,以便从代码中方便地访问您的包:

@interface NSBundle (mybundle)
+(NSBundle *)myBundle;
@end

@implementation NSBundle (mybundle)

static NSBundle * _myBundle;

+(NSBundle *)myBundle{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{

        NSBundle * mainBundle = [NSBundle mainBundle];
        NSString * pathToMyBundle = [mainBundle pathForResource:@"myBundle" ofType:@"bundle"];

        NSAssert(pathToMyBundle, @"bundle not found", nil);

        _myBundle = [NSBundle bundleWithPath:pathToMyBundle];
    });

    return _myBundle;
}

然后,您可以在代码中访问您的包以加载 xib,如下所示:

UIViewController * controller = [[UIViewController alloc] initWithNibName:nil bundle:[NSBundle myBundle]];

请记住,如果您在框架代码中使用类别,您将需要确保您的框架使用者添加-ObjC (or -all_load如果不使用最新的 Xcode)“其他链接器标志”到他们的项目

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在iOS中的静态库中添加xib文件 的相关文章

  • 自定义信息窗口上的按钮未接收 ios 中的操作

    我在 iOS 应用程序中使用 Google 地图 并实现了一个自定义信息窗口来显示标记的标题 现在 我在该自定义信息窗口上添加了一个按钮 但我的问题是按钮操作方法没有被调用 自定义信息窗口 h import
  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我
  • iOS后台获取时间限制崩溃

    我已经设置了背景获取 使用大纲NSScreencast 第 92 集 http nsscreencast com episodes 92 background fetch BOOL application UIApplication app
  • Flutter-iOS 当应用程序更新/重新编译时存储的图像丢失

    嗨 请原谅我的英语 也是 flutter iOS 的新手 我在 iOS 上有一个关于 flutter 的应用程序 用户可以从他们的相机和图库中拍摄照片和视频 我正在使用 image picker 包 这没有问题 然后我将其保存在在其应用程序
  • 在 Pages 文稿中打开文本—Swift

    在我的 Swift 2 应用程序中 用户通过文本字段创建一串文本 然后将其共享给另一个应用程序 现在 我只能将文本共享为 txt 文件 这不提供选项Open In Pages当我打开系统共享对话框时 如何才能让用户可以选择将输入的文本作为
  • 如何将 .ipa 转换为 .app 文件?

    每个人 我有一些 ipa 文件 想要转换为包含 app 包的存档文件 我试图这样做 但我没有办法 有什么办法可以做到这一点吗 请帮我 将 ipa 重命名为 zip 然后提取即可
  • 在 iOS 7 中查看 Core Data 创建的 sqlite 文件时出现问题

    当我尝试访问由核心数据创建的数据库文件时遇到问题 DB 文件位于 Documents 文件夹中 我已将其复制到桌面并使用 Firefox 插件打开它 Hello sqlite文件不包含任何行我有使用核心数据插入值 我正在使用 iOS 7 模
  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • supportedInterfaceOrientations 方法不会重写其超类中的任何方法

    在 UIViewController 中 这段代码 public override func supportedInterfaceOrientations gt UIInterfaceOrientationMask if let mainC
  • iPhone 的翻译器?

    我对为 iPhone 制作一个解释器很感兴趣 这将是一个实验性的想法 但可能会很棒 我喜欢让我自 己的语言适合移动计算和数学的想法 我查阅了很多资料 发现有关 iPhone 上的口译员的信息很复杂 苹果会允许什么 我见过这个应用程序 这是一
  • Apple 由于崩溃而拒绝了我的应用程序,无法重现它

    我刚刚上传了一个应用程序到应用程序商店 它是为ios 7开发的 他们拒绝了该应用程序 因为我无法重现崩溃 他们向我发送了这份崩溃报告 Exception Type EXC BAD ACCESS SIGSEGV Exception Subty
  • Grand Central Dispatch (GCD) 调度源标志

    我最近不再使用 to GCD 调度来源 https developer apple com documentation dispatch 1385630 dispatch source create监视文件更改 效果很好 API 也变得更加
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al
  • 广告标识符和标识符ForVendor返回“00000000-0000-0000-0000-000000000000”

    我已经实现了这个方法来获得advertisingIdentifier and identifierForVendor NSString advertisingIdentifier if NSClassFromString ASIdentif
  • UITableViewCell 内嵌套 UIStackView 内的 UILabel 有时会被截断

    我的一个表设置中有一个表视图单元格 其中包含以下视图层次结构 外部水平 stackview 固定到单元格内容视图的尾部 前部 底部和顶部边缘 右侧标签固定到其父 stackViewHackView 的尾部 前部 底部和顶部边缘 在我的控制器
  • 使用未声明的类型“对象”

    这太奇怪了 通常我可以理解未声明的类 但这是声称 Object 类本身未声明 NSObject 可以工作 但我的项目设置方式我需要它是一个纯 Swift 对象 我的类标题如下所示 import UIKit import Foundation
  • Swift 单元测试 - 如何断言 CGColor 是它应该的样子?

    使用 Xcode V7 2 尝试进行单元测试 需要验证是否已设置正确的颜色 并收到以下消息 Cannot invoke XCTAssertEqual with an argument list of type CGColor CGColor
  • Facebook 登录打开错误的应用程序

    我正在尝试使用 facebook 实现应用程序的登录 但每次我尝试登录时 它都建议打开错误的应用程序 我尝试了一些在这里找到的东西 但没有成功 在 Facebook 的开发者页面上我添加了一个后缀 我的 plist 如下 有谁知道发生了什么
  • 带有自定义字体的 UILabel 错误呈现

    在我的 iPhone 应用程序中 我为所有 UILabel 设置了自定义字体 更准确地说 我对 UILabel 进行了子类化 重写了一个方法 在该方法中设置了自定义字体 然后将 IB 中的所有标签设置为该自定义类 现在的问题是 所有文本都渲
  • TestFlight 安装的应用程序因 Swift 包管理器依赖项而崩溃

    我们已经迁移了一些 CocoaPod 依赖项 以便在 Xcode 11 中使用 Swift Package Manager 进行构建和链接 但是 每当我们将应用程序提交到 AppStore Connect 并使用 TestFlight 进行

随机推荐

  • 如何通过 Interface Builder 使用自定义 UIButton?

    我有一个加载笔尖的子类 UIButton implementation BlaButtonVC id initWithFrame CGRect frame self super initWithFrame frame if self NSA
  • 我如何检查进程是否有输出?

    有没有办法表明像标准计算器这样的过程是否有输出 我需要它 因为我有这一行 sr p1 StandardOutput 我需要这样做 s sr ReadLine 仅当有输出时p1例如 在计算器中 没有输出 因此程序在ReadLine 谢谢大家
  • java.io.FileNotFoundException:(只读文件系统)Mac

    我有一个 SpringBoot 应用程序 我试图在其中测试条形码的生成 但出现此错误java io FileNotFoundException Read only file system Mac 这是完成此任务的代码 pom xml
  • 如何实现 RTL bootstrap 4 导航栏?

    我想让我的引导导航栏 RTL 这是右侧的徽标 链接从右向左流动 我尝试过不同的技巧 但没有一个有效 这是我现在的代码
  • 从字节[]生成X509Certificate?

    是否有可能从 byte 生成 java security cert X509Certificate Sure 证书对象可以通过实例创建证书工厂 http docs oracle com javase 7 docs api java secu
  • Laravel 中删除带有通配符的文件

    有没有一种方法可以让你在 Laravel 5 2 中删除带有通配符的文件 例如 File delete foo bar 我问得太快了 当阅读 PHPDoc 时File delete 我看到你可以给出一个以路径作为参数的数组 所以这对我来说很
  • Chrome 中的实时重新加载 JavaScript

    我知道您可以从 Chrome 开发人员工具的 源 面板中实时编辑 JS 并且我知道有用于实时重新加载 CSS 的系统 但是您可以从源位置 URL 或本地磁盘 或者以某种方式利用工作区 或者甚至可能作为 Chrome 开发者工具插件 特别是这
  • Mercurial 中有没有办法删除本地提交?

    所以我在 Mercurial 中不断犯一个愚蠢的错误 很多时候 我会在不执行 hg pull 和 hg update 的情况下开始工作 当我尝试推送更改时 出现错误 有什么办法可以删除我的本地提交这样我就可以避免创建多个头 分支等 我只想删
  • SQL历史表设计

    我需要设计一个历史表来跟踪编辑时特定记录上更改的多个值 Example 用户将看到一个编辑记录的页面 头衔 先生姓名 乔电话 555 1234出生日期 1900 10 10 如果用户更改任何这些值 我需要跟踪旧值并记录新值 我想到使用这样的
  • 一个控制器中的 AngularJS window.onbeforeunload 正在另一个控制器上触发

    这是我的问题 我有两个视图 View1 和 View2 以及每个视图的控制器 Ctrl1 和 Ctrl2 在 View1 中 我试图在用户意外离开页面而不保存更改之前警告用户 我正在使用 window onbeforeunload 它工作得
  • ThreadAbortException(WebClient 使用 DownloadFile 从服务器获取文件)

    参考我的先前的问题 https stackoverflow com questions 2444888 webclient using download file to grab file from server handling exce
  • 从jsp传递参数到servlet

    如何使用不属于表单任何字段的表单将参数从 jsp 传递到 servlet 而不使用 session 我认为代码可能类似于下面的示例 但对我不起作用 请帮助我 在index jsp中
  • 将玩家分配到桌子上

    考虑N 4k玩家 k桌子和许多氏族 以便每个成员可以属于一个氏族 一个氏族最多可以包含k玩家 我们想要组织 3 轮游戏 这样 对于每张正好容纳 4 名玩家的桌子 坐在那里的 2 名玩家不会属于同一部落 并且在后面的几轮中 坐在那里的 2 名
  • 如何提取当前本地时间偏移值?

    我在尝试格式化和显示一些 IBM 大型机 TOD 时钟数据时遇到了一些困难 我想以 GMT 和本地时间格式化数据 作为默认时间 否则在用户指定的区域中 为此 我需要获取距 GMT 的本地时间偏移值 以有符号整数秒数表示 在zoneinfo
  • 我可以在 Java 中创建自签名证书,该证书将自动受到 Web 浏览器的信任吗?

    我已经使用 keytool 为我的 Java 应用程序生成了自签名证书 但是 当我在浏览器中访问该网站时 它总是会弹出一条警告 说该网站不拥有该证书 有没有办法自签名 修改证书 这样我就不会在浏览器 服务器和浏览器都位于同一主机上 我使用
  • 如何增加pandoc执行时的堆内存?

    我正在努力将 docx 转换为 epub 文档包含大量图像 执行转换时 出现错误 pandoc exe Heap exhausted Current maximum heap size is 1073741824 bytes 1024 MB
  • print(... sep='', '\t' ) 是什么意思?

    我在试图找到这个问题的答案时遇到了一些麻烦 我想知道语法是什么sep and t方法 我找到了一些有关它的信息 但我不太明白使用该语法的目的是什么 我正在寻找它的作用以及何时 为何使用它的解释 一个例子sep 正在使用 print Prop
  • 我想将枚举值打包到 Bundle 中并获取为枚举

    我有这样的枚举 enum Status READY DISCONNECTED RECEIVING more 我想通过 Bundle 将该枚举的值发送到另一个线程 另一个线程想从 Bundle 中提取枚举值 如何巧妙地做到这一点 Bundle
  • GWT Tree 小部件吞下箭头键盘事件,这使得 TreeItems 中包含的文本框不响应箭头键

    在 GWT 1 6 4 中可以轻松重现 Tree tree new Tree tree addItem new TextBox 问题出在 Tree 中的 onBrowserEvent 上 switch eventType case Even
  • 如何在iOS中的静态库中添加xib文件

    我正在尝试在静态库中添加 xib 文件或任何其他视图控制器文件 但我无法这样做 你能帮我么 如果可以的话请添加完整的源代码 第一个视图中的 是 按钮 当单击该按钮时 新的视图控制器会出现一些内容 比如说背景颜色的变化 如何为此创建静态库 这