我有一个单一的视图应用程序。它有myAppDelegate和myViewController。在我从书中做的早期学习项目中,myViewController.h包含以下内容:
IBOutlet UILabel *textField;
要在iPhone上显示该标签的文字,请将以下内容放在myViewController.m中:
[textField setText:@"Hello World!"];
它有效!漂亮!但是......如何从myAppDelegate完成同样的工作呢?如果我把同一行放在myAppDelegate.m里面,在里面:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
我收到错误:使用未声明的标识符'textField'。
所以我可以从myAppDelegate中将文本打印到myViewController内的同一个标签上吗?
谢谢!
答案 0 :(得分:1)
最好的答案可能是,“不要......因为视图控制器应该对自己的视图负责。”
但是,实际上,您需要引用视图控制器才能更改其中一个属性。语法可以是[controller.textField setText:@"Hello World!"];
形式,但是您自己的变量名称作为目标。确切的陈述将取决于您didFinishLaunchingWithOptions:
方法中当前的内容以及您的应用委托和视图控制器如何相互连接。