2015-11-02 79 views
4

我有一个基于Objective-C和Swift的视图控制器的应用程序。我正在以编程方式从我的一个基于Objective-C的视图控制器中打开一个基于Swift的视图控制器。我遇到的问题是我无法从我的Objective-C代码中访问Swift变量。无法从Objective-C视图控制器访问Swift var-iOS

我的银行代码:

@IBOutlet weak var profPicture: UIImageView! 
@IBOutlet weak var profVerified: UIImageView! 
@IBOutlet weak var profName: UILabel! 
var passedUser:PFUser! 

我的Objective-C代码:

MyProfileViewController *screen = [[MyProfileViewController alloc] initWithNibName:@"Main" bundle:nil]; 
self.dataPass = screen; 
dataPass.profName.text = @""; 
screen.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
[self presentViewController:screen animated:YES completion:nil]; 

我能够访问@像IBOutlets性质,但我不能访问和编辑VAR对象。

我这样做,因为我想要基于Objective-C的视图控制器传递数据到基于Swift的视图控制器,当我提出基于Swift的视图控制器。

为什么我无法访问var对象?

这里是我得到的错误:

enter image description here

错误如下:

住宅 'passedUser' 在类型的对象没有找到 'MyProfileViewController *'

谢谢你的时间,丹。

+0

在哪一行,你得到一个错误?什么是错误信息? – Sulthan

+0

@Sulthan我更新了我的问题。 – Supertecnoboff

+0

你没有宣布他们是“公共”。 –

回答

4

您将不得不声明变量为public

默认情况下,变量具有internal访问权限,这意味着它们只能从模块内部访问。 Obj-C代码不在其模块中。

+0

非常感谢! :) – Supertecnoboff

2

我有一个ObjectiveC枚举的问题,这是一个Swift类中的变量,在ObjectiveC中无法访问。

声明变量为公共无效,相反,我必须在声明它时给枚举一个默认值,因为它包含在[project] -Swift.h头文件中。

var firstQuestion: AnswerResult = AnswerNone 

下不工作:

var firstQuestion: AnswerResult! 
相关问题