0

我曾经只以编程方式创建 viewController/views。

使用 xib 比我预期的要难。

我发现 xib 或任何其他子视图的 self.view 最初为零。

I created the viewController by [[MyViewController alloc] init]  
and tried to [myViewController.imageView setImage: image];  //imageView is nil  

NSLog(@"%p", myViewController.view); // access view here
[myViewController.imageView setImage: image]; //works now 

我觉得我错过了一些非常基本的东西。那会是什么?

4

3 回答 3

1

文档中UIViewController所述,当您第一次访问该view属性时,视图会延迟加载。最早可以参考它们的是viewDidLoad.

于 2012-08-11T15:00:59.917 回答
0

根据我的经验,当我尝试在 viewDidLoad 触发之前访问视图时会发生这种情况,例如尝试在视图控制器的 init 方法中访问它。如果是这种情况,请等到 viewDidLoad 触发后才能访问视图。

于 2012-08-11T14:50:53.057 回答
0

尝试

[[MyViewController alloc] initWithNibname:@"mynibname" bundle:nil] 

以这种格式分配正确的视图....试试看

于 2012-08-11T16:15:01.233 回答