2014-06-09 70 views
0

我使用SpriteKit創建一個遊戲,我做一個類暫停如何「解僱」在MyScene(SpriteKit)上設置爲rootViewController的UIViewController?

SettingsViewController *pause = [[SettingsViewController alloc] init]; 

self.view.window.rootViewController = set; 

現在我想設置

self.view.window.rootViewController = nil; 
從暫停

,使遊戲從離開的地方回去。

觀測值:我用

self.scene.view.paused = YES; 

停止SKScene。

+0

爲什麼不使用segues來控制應用程序流? –

+1

這很危險。你不能去玩窗口的rootViewController。請給我們一些關於您想要達到的流程的更多細節。 – ZeMoon

回答

0

只是顯示一個自定義視圖來隱藏它,當它回來刪除它。這可讓您在遊戲背景中顯示遊戲的啓動畫面

public override void DidEnterBackground (UIApplication application) 
    { 
     AddScreenCover(); 
    } 

public ScreenCoverView AddScreenCover(float alpha = 1f) { 
     ScreenCoverView view = new ScreenCoverView (Window.Bounds); 
     view.Alpha = alpha; 
     Window.AddSubview (view); 
     Window.BringSubviewToFront (view); 

     return view; 
    } 

    public void RemoveScreenCover() { 
     foreach (var view in Window.Subviews) { 
      if (view.GetType() == typeof(ScreenCoverView)) { 
       UIView.Animate (
        .1, 
        0, 
        UIViewAnimationOptions.CurveLinear, 
        () => { 
         view.Alpha = 0f; 
        }, 
        () => { 
         view.RemoveFromSuperview(); 
        } 
       ); 


       break; 
      } 
     } 


    } 
+0

這是在C#中,但很容易轉換 –

相關問題