如何在Swift项目iOS中使用XIB

时间:2015-05-13 11:16:51

标签: ios objective-c xcode swift xib

我有两个独立的Xcode项目,我已融合成一个:一个用文本识别器实现的文档识别器,用Objective-C编写的XIB文件,另一个用Swift写的传统用户界面更多的东西。这两个项目都是完美无缺的。 我清除了所有错误,并创建了一个Bridging头文件。到目前为止,Swift和Objective-C模块共存,但显然只有Swift部分运行。 我想打开Objective-C XIB并在我的swift编码UI中显示它。

Project Structure

1 个答案:

答案 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的子视图。我的示例中的变量someViewInStoryboardIBOutlet的{​​{1}}。