2014-01-26 105 views
1

我有一個SKview(我正在與spritekit)裏面的viewcontroller和每一次我改變手機的方向(從風景一種方式到另一種風景或反之亦然)它重新加載視圖控制器,就好像我剛剛打開了應用程序(視圖控制器是最初的那個)。翻轉iPhone的方向重新加載視圖控制器

有沒有解決它的方法?

我似乎無法找到任何人有同樣的問題。

代碼:

http://pastie.org/8669630

+0

你可以發佈你的視圖控制器代碼和相關的應用程序委託代碼。每次改變方向時都不應該重新加載。 –

+0

@DobroćudniTapir你去 – maxhud

回答

2

您在viewWillLayoutSubview都會調用每一次設備旋轉(圖幅的變化)設置你的SKView。

這是很好的,因爲視圖將具有正確的尺寸,但是您應該放置一些變種以知道是否應該再次設置視圖。例如布爾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; 
    } 
} 
+2

在幾乎所有情況下,只需檢查:if(skView.scene == nil){..} – LearnCocos2D

+0

oh duhhhhh。謝謝。我會盡我所能接受 – maxhud

相關問題