如何从另一个视图更改textField的文本

时间:2012-04-03 16:54:44

标签: objective-c ios cocoa-touch

我有这段代码:

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";
}

问题是它不起作用,虽然它没有给我任何错误。有谁知道我做错了什么?

2 个答案:

答案 0 :(得分:1)

永远不要修改其他视图控制器的视图。您遇到了许多问题之一。在您的情况下,可能的原因是另一个视图控制器尚未加载其视图,因此所有IBOutlet仍然是零。

你正在打破MVC,这将导致很多像这样的小问题。您应该将数据(ViewControllerTwo)移动到两个视图控制器共享的模型对象中,而不是让ViewController修改@"hello"的出口。 ViewControllerTwo会写入,ViewController会从中读取。您可以通过将模型对象作为属性传递给视图控制器,或者通过使模型成为单例来共享该模型对象。

答案 1 :(得分:0)

您没有实例化ViewController类的实例,因此您实际上是在向nil发送消息。