翻转iPhone方向会重新加载viewcontroller

时间:2014-01-26 18:49:14

标签: ios xcode sprite-kit

我有一个带有SKview的视图控制器(我正在使用spritekit)并且每次我改变手机的方向(从横向单向到另一种方式或反之亦然)它重新加载视图控制器,就好像我刚刚打开了应用程序(viewcontroller是最初的一个)。

有解决方法吗?

我似乎无法找到任何有同样问题的人。

代码:

http://pastie.org/8669630

1 个答案:

答案 0 :(得分:2)

您正在viewWillLayoutSubview设置SKView,每次设备旋转时都会调用它(查看框架更改)。

哪个好,因为视图将具有正确的尺寸,但是如果您再次设置视图,则应该放置一些var。例如BOOL sceneSetUp

- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];
    if(!self.sceneSetUp){
    // Configure the view.
    SKView * skView = (SKView *)self.view;
    //skView.showsFPS = YES;


    // Create and configure the scene.
    SKScene * startScene = [StartViewController sceneWithSize:skView.bounds.size];
    startScene.scaleMode = SKSceneScaleModeAspectFill;

    SKScene * scene = [gameViewController sceneWithSize:skView.bounds.size];
    scene.scaleMode = SKSceneScaleModeAspectFill;

    // Present the scene.
    [skView presentScene:startScene];
    //[skView presentScene:scene];
    self.sceneSetUp = YES;
    }
}