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]