如何解雇"在MyScene(SpriteKit)上设置为rootViewController的UIViewController?

时间:2014-06-09 19:41:14

标签: ios objective-c uiviewcontroller sprite-kit

我正在使用SpriteKit创建游戏,我为暂停创建了一个类

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

self.view.window.rootViewController = set;

现在我要设置

self.view.window.rootViewController = nil;

从暂停开始,让游戏从它离开的地方回来。

Obs:我用过

self.scene.view.paused = YES;

停止SKScene。

1 个答案:

答案 0 :(得分: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;
            }
        }


    }