2011-05-31 50 views
0

我有一個項目可以編輯。我認爲這是一個簡單的問題,但要詳細解釋它。我通常使用界面構建器設置iPhone項目,然後使用視圖控制器h和m文件。在Viewcontroller中訪問UIView中的屬性?

但是,這已經以我不熟悉的方式建立起來了,視圖已經被編碼了。

的.h文件是一個簡單的視圖控制器類是這樣的:

@interface MainViewController : UIViewController 
{ 
} 
- (id)init; 
@end 

然後M檔有這樣的:

@interface MainView : UIView 
{ 
NSUinterger firstinterger; 
} 

- (id)initWithImages:(NSArray *)inImages; 

@end 

然後它就在那之後有很多更多的代碼有@implementation MainView

再往下不過是我只需要

@end 

@implementation MainViewController 

後加入我的代碼,但我需要訪問NSUinterger命名的第一個整數,我無法。我嘗試了幾種綜合方法,但我認爲我做錯了。我將如何獲得它的價值?我可以在@implementation MainViewController之前的代碼中訪問它,但不能在之後我需要它。

回答

0

MainView中合成變量。在MainViewControllerMainView的實例,那麼你可以通過

MainView *mv = [[MainView alloc] init]; 
mv.firstInteger // gives you the variable. 
+0

感謝您的答案,你是什麼意思是由mainviewcontroller有一個mainview的實例?在h或m文件中? – ApiMail 2011-05-31 12:19:46

+0

您需要該類的對象。當你使用nib創建時,你有一個名爲view的實例來引用視圖。同樣你需要有這樣的實例來引用主視圖 – visakh7 2011-05-31 12:22:57

+0

好吧,所以我有這個,我現在可以編譯沒有任何錯誤,但是當我編譯的值,並嘗試使用該方法的值總是0.它不是通常爲0,因爲我已經使用NSLOG來測試它,就在我使用該方法時它是0? – ApiMail 2011-05-31 12:24:35

0

在你的代碼NSUinterger firstinterger訪問,也沒有任何「;」在那一行的結尾處,你是否遇到編譯錯誤,或者它只是你的問題中的一個錯字?

+0

這只是一個錯字抱歉,生病修復它 – ApiMail 2011-05-31 19:23:40

+0

食物雖然是正確的,如果你想訪問跨越許多類的變量/對象 - 考慮單身類。你試圖做什麼只會導致問題,因爲它不是線程安全的(我是對任何一個??)我開始編碼時,我試過這個,並且必須找到一個解決方案來存儲任何類/對象可以訪問的一些變量,單身人士是你的救星。 – theiOSDude 2011-06-01 09:05:31

+0

謝謝,我知道我從來不這樣做,但我必須讓項目完全相同,但只需添加一些代碼即可。 – ApiMail 2011-06-01 10:25:48

相關問題