我曾经只是以编程方式创建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
我觉得我错过了一些非常基本的东西。它会是什么?
答案 0 :(得分:1)
如the documentation for UIViewController
中所述,当您第一次访问view
属性时,视图会被延迟加载。您最早可以参考的是viewDidLoad
。
答案 1 :(得分:0)
根据我的经验,当我尝试在viewDidLoad触发之前访问视图时会发生这种情况,例如尝试在视图控制器的init方法中访问它。如果是这种情况,请等到viewDidLoad触发后访问视图。
答案 2 :(得分:0)
尝试
[[MyViewController alloc] initWithNibname:@"mynibname" bundle:nil]
以这种格式分配正确的视图....试试吧