我正在尝试将数据从objective-c ViewController传递到Swift ViewController,我在Objective-C控制器中收到此错误:
在'UIViewController'类型的对象上找不到属性'type'
我的Objective-C代码:
UIViewController *mainController = [self.storyboard instantiateViewControllerWithIdentifier:@"IdentitySelfieViewController"];
mainController.type = "passport";
[self.navigationController pushViewController:mainController animated:YES];
导入Bridging-header文件:
#import "PassportViewController.h"
并将相应的String创建到我的Swift View Controller
中let type = ""
感谢您的帮助
答案 0 :(得分:3)
问题的解决方案是这样的:
首先在你的Swift控制器中添加@Objc
之前的类关键字:
@objc class ViewController: UIViewController
并在该控制器中创建一个类似的变量:
public var myValue:String = ""
在Objective-C
ViewController之后,您需要导入此内容并牢记这一点非常重要。
#import "TargetName-Swift.h"
TargetName应替换为您的目标名称。在此之后,您可以轻松地调用该Swift控制器的变量:
ViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"VC"];
vc.myValue = @"Hello";
答案 1 :(得分:0)
这是你的速成班
步骤1:
class SwiftClassController: UIViewController {
//Required variables
@objc var deviceId: String?
@objc var deviceObj: CustomType?
第2步:
在Objective C类中导入#import "YourProjectName-Swift.h"
第3步:
在来自Swift文件的Objective C类访问变量中
YourViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"YourVC"];
vc.deviceId = @"1234567";
vc. deviceObj = yourCustomObject;