Objective-c:在addSubview之后递归调用viewDidLoad

时间:2012-11-20 09:15:13

标签: objective-c xcode

我在Xcode 4.5.2工作 我有以下问题:
当我从非空项目中创建项目时 - 即从故事板初始化视图,有时当我添加代码时

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *b = [UIButton buttonWithType:UIButtonTypeRoundedRect];
b.frame = CGRectMake(20, 20, 100, 100);
[self.view addSubview:b];

到viewDidLoad方法,它在addSubview方法调用之后再次被递归调用,有时候(天空祝福)它没有。
谁能告诉我这是什么问题以及如何解决它? 我的感激之情。

2 个答案:

答案 0 :(得分:1)

编辑:由于@WDUK正确指出,以下答案是错误的。它可以解释loadView中的递归,而不是viewDidLoad

旧的,错误的答案:

  

调用-[super viewDidLoad]后发生递归调用   尚未设置view属性,然后调用self.view

     

您可能只是忘记将视图连接到文件的所有者   查看插座。

答案 1 :(得分:0)

当设备耗尽可用内存时,如果视图当前不可见,则可以取消分配视图。您应该始终确保正确处理此行为。

当您使用导航或tabbarcontroller时,例如切换到另一个视图时,我可能会发生这种情况。