Objective c 如何从其他视图更改文本字段的文本

Objective c 如何从其他视图更改文本字段的文本,objective-c,ios,cocoa-touch,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 "ViewC

我有以下代码:

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

问题是它不工作,尽管它不会给我任何错误。有人知道我做错了什么吗?

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

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


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

那么我如何实例化TextField呢?您不实例化TextField,而是像这样实例化类
viewCont=[[viewcontrolleralloc]initWithNibName:@“ViewController”bundle:[NSBundle mainBundle]