2011-02-25 59 views
1

我知道這是非常基本的東西,但我只是從Objective-C開始,我主要在Java中工作過。這裏是我的問題:我想更新從另一個類文本框一個:Objective-C從另一個類更新textField的文本

我有兩個類:

@interface FlipsideViewController : UIViewController <PostDistanceControllerDelegate> { 
id <FlipsideViewControllerDelegate> delegate; 

IBOutlet UITextField *currentStatus; 
IBOutlet UITextField *currentUpdateDate; 
} 
@property ... 

在我FlipsideViewController.m我可以使用:

@implementation FlipsideViewController 

//.... 

- (IBAction)done:(id)sender{ 
    [email protected]"TOTO"; 
} 

現在我有第二類,我試圖更新文本從第一類...

@implementation OthersideViewController 

-(void)setStatus{ 
    [FlipsideViewController [email protected]"TEST"}; 
} 

我知道我不能重新初始化控制器,因爲它已經被初始化了。我試圖extern currentStatus字段,它不起作用。我嘗試使用一個getter和一個setter,就像你在Java中所做的那樣,調試器說:無法識別的選擇器

任何想法?

+0

感謝的提示!我終於搞定了。我還發現,我可以全局化一個實例的指針,所以我可以稍後再調用它。 即:globalVars.m FlipsideViewController * flipper; 從我的第一課(其中導入globalVars) extern FlipsideViewController * flipper; flipper =控制器; //假設控制器已啓動。 然後你可以使用鰭狀肢作爲參考。 [[flipper currentStatus] setText:@「TEST」]; – Alex 2011-02-26 01:40:47

回答

2

您試圖通過向該類發送消息來設置成員的屬性,這就是爲什麼它不起作用。你需要有FlipViewSideController的實例的引用,並調用如:

-(void)setStatus{ 
    [FlipsideViewControllerInstance [email protected]"TEST"}; 
} 

因此,無論您通過FlipViewController實例您setStatus方法作爲參數

-(void)setStatusOfViewControllerLabel:(FlipViewController *) FlipsideViewControllerInstance { 
    [FlipsideViewControllerInstance [email protected]"TEST"}; 
} 

或者你保持在你的OthersideViewController對象中引用它。

爲清晰起見進行了編輯。

0

假設你已經宣佈你的財產,然後合成它,你有一個「FlipsideViewController *另一面」變量,那麼你可以使用

[flipside currentStatus].text = @"TEST"; 

[[flipside currentStatus] setText:@"TEST"];