将数据从 Swift 控制器传递到 Objective-C 控制器

Posted

技术标签:

【中文标题】将数据从 Swift 控制器传递到 Objective-C 控制器【英文标题】:Passing data from a Swift Controller to an Objective-C controller 【发布时间】:2017-05-31 12:36:44 【问题描述】:

我正在尝试将一个简单的字符串从 Swift 控制器传递到 Objective-C 控制器,但不幸的是它不起作用。

我得到的错误:

“EUIDViewController”类型的值没有成员“stringPassed”

Swift 代码发送字符串

let pvc = EUIDViewController(nibName: "ScannerViewController", bundle: nil)
if isHasCameraPermission 
    pvc.stringPassed = "test"
    present(pvc, animated: true, completion:  _ in )

Objective-C 代码接收字符串

@property (strong, nonatomic) NSString* stringPassed;

- (void)viewDidLoad 
    [super viewDidLoad];
    [self initOCR];
    NSLog(@"String: %@", self.stringPassed);

更新:我将 #import "EUIDViewController.h" 放入了桥接头

【问题讨论】:

【参考方案1】:

您需要在.h 中声明stringPassed 属性,表示该ViewController 的头文件。

@interface ViewController : UIViewController

@property (strong, nonatomic) NSString* stringPassed;

@end

【讨论】:

哦,谢谢!我觉得自己很愚蠢...我会尽可能将您的答案标记为正确的答案! @Isabelle 欢迎朋友 :)

以上是关于将数据从 Swift 控制器传递到 Objective-C 控制器的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 将数据从父视图控制器传递到子视图控制器

Swift 3:将数据从 TabBarController 传递到子视图控制器

将数据从标签栏控制器传递到 swift 和 xcode 中的视图控制器

Swift:如何将数据从 TableViewController 传递到 Details VC

将数据从 TableViewController 传递到 XIB 文件而不使用 Segues-Swift 3

关于在用户查询后将数据从 API 传递到视图控制器的问题 - Swift