How to call a swift view controller in objective c?
我有一个目标C控制器,我想调用另一个控制器,它是来自那个objc控制器的Swift控制器?
- 在应用程序构建设置中创建一个Objective-c Generated Interface Header。现在,您可以使用这个头来导入目标C代码中的Swift代码,并像使用其他代码一样使用视图控制器。
- 如何导入Swift类?
- 这不算太宽泛。
显然很容易。
你必须首先确保你的班级申报表是用@objc预先准备好的,这样你的目标C学生就可以使用它了。
例如:
1 2 3 4 5 6 7 8
| import Foundation
// Belongs to target 'TestProject'
@objc class SwiftController: UIViewController {
//... truncated
} |
现在您只需导入目标的名称(Swift控制器所属的名称),并附加'-Swift.h'—这样暴露其接口:
#import"TestProject-Swift.h"
- 没有结果,当我导入类import"testclass swift.h"时,没有找到该类
- 您需要进入构建设置并设置Objective-c Generated Interface Header.。
- @RCKOENES还没用?
- 确保没有导入类,也没有导入类所在的目标。因此,如果您的类TestClass位于一个名为TestProject的项目中(很可能带有一个名为TestProject的自动生成目标),那么您需要导入TestProject-Swift.h。记住,Swift文件没有标题。
创建一个新文件"yourappname bridging header.h",在该文件中,必须导入"your objective-c view controller.h"
去建立设置和搜索桥接头和链接你的鸟头路径。
现在,您可以像往常一样使用swift编写代码。
- 我认为OP在询问如何访问目标C文件中的Swift控制器。
- 您可以使用它,要么您必须在目标C文件中使用Swift控制器,要么在Swift文件中使用目标C控制器。
- 好吧,我明白你的意思了。你不需要用@objc预先准备swift类吗?