在UIWindow中添加Subview之前设置UILabel失败

时间:2009-04-07 02:55:16

标签: objective-c iphone

属性标签的类型为 UILabel ,是 UIViewController 中的插座。

为什么以下工作: -

[window addSubview:viewController.view];
[viewController.label setText:@"New Label"] ;

且语句的反向序列不会更改标签中的默认文本:

[viewController.label setText:@"New Label"] ;
[window addSubview:viewController.view];

是否从附加到UIViewController的UI元素加载视图?

1 个答案:

答案 0 :(得分:3)

视图控制器在第一次请求时创建或加载视图,可以是NIB,也可以是loadView方法。在大多数情况下,关联的子视图也只在加载主视图时创建。这意味着viewController.labelnil,直到您第一次尝试访问viewController.view

因此,如果您首先尝试设置标签文字,那么您实际上只是将该邮件发送到nil,这就是为什么它似乎没有生效。