2012-06-23 69 views
1

我有一个单一的视图应用程序。它有myAppDelegate和myViewController。在早期的学习项目,我从一本书一样,myViewController.h包含以下内容:如何从AppDelegate将ViewText设置为ViewController?

IBOutlet UILabel *textField; 

而在iPhone上显示文本到标签,它有你把myViewController.m如下:

[textField setText:@"Hello World!"]; 

它的工作!漂亮!但是......我如何从myAppDelegate完成相同的操作?如果我把同样的线之上里面myAppDelegate.m,里面:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

我得到一个错误:使用未声明的标识符“文本框”的。

因此,我可以从myAppDelegate在myViewController中的同一标签打印文本?

谢谢!

回答

1

最好的答案可能是,“不要...因为视图控制器应该对自己的视图负责。”

但是,实际上,您需要引用视图控制器才能更改其属性之一。该语法的格式为[controller.textField setText:@"Hello World!"];,但使用自己的变量名称作为目标。确切的声明将取决于您的didFinishLaunchingWithOptions:方法中的当前内容以及您的应用程序委托和视图控制器如何彼此连接。

+0

我不得不这样做:[viewController-> textField setText:@“Hello World!”];但我得到一个错误,实例变量'setText'受到保护。我该如何解决这个问题? –

+1

请勿使用指针表示法( - >)。使用'viewController.textField',如果这给你任何错误,修复那些而不是访问实例变量。 –

+1

在视图控制器中的变量声明上方添加'@ public'。 –

相关问题