2015-11-02 73 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! 
相關問題