在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];
不得不说,苹果在这两种语言的衔接方面做的很自然,方便。