我有这段代码:
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";
}
问题是它不起作用,虽然它没有给我任何错误。有谁知道我做错了什么?
答案 0 :(得分:1)
永远不要修改其他视图控制器的视图。您遇到了许多问题之一。在您的情况下,可能的原因是另一个视图控制器尚未加载其视图,因此所有IBOutlet仍然是零。
你正在打破MVC,这将导致很多像这样的小问题。您应该将数据(ViewControllerTwo
)移动到两个视图控制器共享的模型对象中,而不是让ViewController
修改@"hello"
的出口。 ViewControllerTwo
会写入,ViewController
会从中读取。您可以通过将模型对象作为属性传递给视图控制器,或者通过使模型成为单例来共享该模型对象。
答案 1 :(得分:0)
您没有实例化ViewController类的实例,因此您实际上是在向nil发送消息。