willAnimateRotationToInterfaceOrientation在viewWillAppear之前被调用

时间:2010-12-20 04:46:51

标签: cocoa-touch ios orientation uiinterfaceorientation viewdidappear

我刚刚查看了我在iOS应用中发生的崩溃,它与在viewWillAppear之前调用willAnimateRotationToInterfaceOrientation有关。

我有一个有两个视图的应用。基本上,当view1消失时,我释放一些数组,假设它们在viewWillAppear中重新出现时会被重新初始化。

但是,如果我在view2中更改方向然后切换回view1,这会导致willAnimateRotationToInterfaceOrientation在view1调用viewWillAppear并重新初始化所有内容之前发生,这会导致崩溃。

有没有办法延迟willAnimateRotationToInterfaceOrientation,直到视图出现并且所有内容都已重新初始化?

如果没有,我可以看到的唯一解决方案是不使用willAnimateRotationToInterfaceOrientation(导致看起来难看的方向更改)或者当我从view1切换到view2时不释放我的数据,导致使用的内存超出必要的数量。 / p>

有人对我该做什么有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用延迟加载样式代码来避免您的问题,例如:

NSArray* someData;


-(void)somefun1{

   if (!someData) {

      [self loadData];
   }

    //use your data
}

-(void)somefun2{

    if (!someData) {

    [self loadData];
    }

    //use your data

}

-(void)loadData{
    //some loading code
}

使用延迟加载样式代码,您永远不需要心灵事件调用顺序。