2012-04-03 70 views
0

改變我有這樣的代碼:如何將文本框的文本從另一種觀點認爲

ViewController .h 

@property IBOutlet UITextField *field; 

ViewController .m 

@synthesize field; 

ViewControllerTwo .h 

#import "ViewController.h" 
{ 
ViewController *ViewCont; 
} 
-(IBAction)changeTextField 

ViewControllerTwo .m 

#import "ViewController.h" 

-(IBAction)changeTextField{ 
    viewCont.field.text = @"hello"; 
} 

的問題是,這是行不通的,雖然它並沒有給我任何錯誤。有誰知道我做錯了什麼?

回答

1

永遠不要修改其他視圖控制器的視圖。你遇到了許多問題之一。在你的情況下,可能的原因是其他視圖控制器尚未加載視圖,所以所有IBOutlet仍然是零。

你打破了MVC,這會導致很多像這樣的小問題。而不是讓ViewControllerTwo修改ViewController的出口,您應該將數據(@"hello")移動到兩個視圖控制器共享的模型對象中。 ViewControllerTwo會寫入它,而ViewController會從中讀取。您可以通過將該模型對象作爲屬性傳遞給視圖控制器來共享該模型對象,或者將模型作爲單例。

+0

確實實例化類。你的回答非常棒! – adr 2012-04-04 09:02:29

0

你沒有實例化類ViewController的實例,所以你實質上是在向nil發送消息。

+0

那麼我如何實例化TextField? – adr 2012-04-03 17:14:43

+0

你沒有實例化TextField,你可以像這樣''viewCont = [[ViewController alloc] initWithNibName:@「ViewController」bundle:[NSBundle mainBundle]]' – CodaFi 2012-04-03 17:17:47

相關問題