Objective c 在UIWindow中添加子视图之前设置UILabel失败

Objective c 在UIWindow中添加子视图之前设置UILabel失败,objective-c,iphone,Objective C,Iphone,属性label属于UILabel类型,是UIViewController中的一个出口 为什么以下方法有效:- [window addSubview:viewController.view]; [viewController.label setText:@"New Label"] ; 语句的相反顺序不会更改标签中的默认文本: [viewController.label setText:@"New Label"] ; [window addSubview:viewController.view];

属性label属于UILabel类型,是UIViewController中的一个出口

为什么以下方法有效:-

[window addSubview:viewController.view];
[viewController.label setText:@"New Label"] ;
语句的相反顺序不会更改标签中的默认文本:

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

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

视图控制器在第一次请求视图时创建或加载视图,无论是从NIB还是通过
loadView
方法。在大多数情况下,关联的子视图也仅在加载主视图时创建。这意味着在您首次尝试访问
viewController.view
之前,
viewController.label
nil


因此,如果您尝试先设置标签文本,实际上您只是将该消息发送到
nil
,这就是它似乎没有生效的原因。

视图控制器在第一次请求视图时创建或加载它的视图,无论是从NIB还是通过
loadView
方法。在大多数情况下,关联的子视图也仅在加载主视图时创建。这意味着在您首次尝试访问
viewController.view
之前,
viewController.label
nil

因此,如果您尝试先设置标签文本,实际上您只是将该消息发送到
nil
,这就是它似乎没有生效的原因