2012-04-03 69 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

相关问题