在OC代码中创建Swift编写的视图控制器

背景

近日在和一群朋友做项目,我和另一位同学负责iOS客户端,我是一直使用OC的,而他只会Swift,因此在我们分工协作之后,就需要把代码合在一起,这就牵扯到如何在TabbarController中添加一个Swift创建的子控制器的问题。

解决

首先在一个OC项目中新建一个Swift类,继承自UITableViewController,并且修改其view背景色,方便后续测试。

import UIKit
class ESSwiftTableViewTestVc: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.grayColor();
}
// 下面省略
}

然后在需要使用的地方导入一个头文件,注意头文件是由系统自动生成的,为工程名-swift.h,例如我的工程名为EnjoySkill,那么这个头文件就是EnjoySkill-swift.h,系统不会进行自动补全,需要自行输入完成。

#import "EnjoySkill-swift.h"

最后,也就是需要创建控制器的时候,使用OC的语法创建。

UITableViewController *tab2 = [[ESSwiftTableViewTestVc alloc] init];

不得不说,苹果在这两种语言的衔接方面做的很自然,方便。

上一篇:在 OC 中调用 Swift 代码


下一篇:在OC项目中实现swift与oc混编 相互引用