0

我尝试了很多东西,但没有一个有效。我有一个SKScene,当游戏结束时,我希望它回到原来的视图控制器。先感谢您。

我已经在我的 SKScene 中尝试过这个

homeScreenViewController *viewCont = [[homeScreenViewController alloc] init];
            [viewCont viewDidLoad];

这在我的另一个视图控制器中

constructinoViewController *view = [[constructinoViewController alloc ] init];
        [self presentViewController:view animated:YES completion:nil];

它主要说视图不在视图层次结构中。

4

2 回答 2

0

如果您已经展示了 ViewController,那么您需要将其关闭以返回到之前的 ViewController。

你应该使用

[self dismissViewControllerAnimated:YES completion:NULL];
于 2014-02-28T05:48:02.430 回答
0

您需要一种向父 viewController 发送消息的方法。

在呈现 SKScene 的 viewController 中,在 viewDidLoad 中添加以下行:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(closeScene) name:@"closeScene" object:Nil];

另外,添加此方法

-(void)closeScene
{
    //Remove the SKView, or present another viewController here.

    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"closeScene" object:nil];
}

然后在您的 SKScene 中,在您的游戏结束时,

[[NSNotificationCenter defaultCenter] postNotificationName:@"closeScene" object:nil];

您也可以使用委托来做到这一点。

于 2014-02-27T11:46:41.090 回答