【发布时间】:2019-10-01 03:31:34
【问题描述】:
我创建了可可触摸框架,我创建了UIViewController 类,该类在xib 文件中有ui。我已经完成了 xib 和控制器文件之间所需的绑定,例如连接到控制器类的文件所有者。
我在单独的项目中创建了另一个 xib 和控制器文件作为普通的 ios 应用程序。在那里,我尝试将这个 ViewController 呈现在屏幕上,但是当我尝试加载框架中存在的控制器时,只有黑屏出现在屏幕上。
我在 xcode 中的 copy bundle resources 部分 build phases 中添加了 xib 文件。但是当我在本地安装框架时,我只能看到控制器文件以及其他 swift 文件,但看不到 xib 文件。
let oPController = OPController()
let oNav = UINavigationController(rootViewController: oPController)
controller.present(oNav, animated: true, completion: nil)
当框架包含xib 文件时,是否需要特别注意?
注意当我查看项目中已安装的 pod 时,我看不到任何 xib 文件。
【问题讨论】:
-
你必须指定
Bundle来加载 xib。当您使用不带参数的init时,它将使用Bundle.main,在这种情况下这不是正确的。当然,框架包必须在构建期间正确复制。 -
我必须在哪里做这个?
-
copy bundle resources中有 xib 文件可以吗? -
你应该先试试
OPController(nibName: nil, bundle: Bundle(for: OPController.self)。这应该确保 xib 是从正确的包中加载的。
标签: ios swift uiviewcontroller xib