我有两个独立的Xcode项目,我已融合成一个:一个用文本识别器实现的文档识别器,用Objective-C编写的XIB文件,另一个用Swift写的传统用户界面更多的东西。这两个项目都是完美无缺的。 我清除了所有错误,并创建了一个Bridging头文件。到目前为止,Swift和Objective-C模块共存,但显然只有Swift部分运行。 我想打开Objective-C XIB并在我的swift编码UI中显示它。
答案 0 :(得分:0)
根据您的屏幕截图,我假设您在Swift应用程序中为您的UI使用了故事板。
由于旧版UI位于XIB文件上,因此需要以编程方式加载它。为此,您必须使用loadNibNamed
方法,如以下示例所示:
var nibs = NSBundle.mainBundle().loadNibNamed("Counter", owner: self, options: nil)
for v in nibs {
if (v is Counter) {
someViewInStoryboard.addSubview(v)
}
}
这里我有一个包含自定义UIView
的Counter.xib文件。此视图的类为Counter
,其扩展为UIView
。
因此,在加载XIB时,浏览它以查找自定义视图,然后将其添加为故事板中现有UIView
的子视图。我的示例中的变量someViewInStoryboard
是IBOutlet
的{{1}}。