Sprite kit 切换场景及其视图控制器

Sprite kit 切换场景及其视图控制器,sprite-kit,Sprite Kit,我使用transition从一个场景切换到另一个场景(这是scene.m中的代码): 在我的视图控制器中,我有以下代码: -(void)viewWillLayoutSubviews { SKView * skView = (SKView *)self.view; // Create and configure the scene. SKScene * scene = [LogoScene sceneWithSize:skView.bounds.size];

我使用transition从一个场景切换到另一个场景(这是scene.m中的代码):

在我的视图控制器中,我有以下代码:

-(void)viewWillLayoutSubviews
{
    SKView * skView = (SKView *)self.view;    
    // Create and configure the scene.
    SKScene * scene = [LogoScene sceneWithSize:skView.bounds.size];
    scene.scaleMode = SKSceneScaleModeAspectFill;

    // Present the scene.
    [skView presentScene:scene];
}
但是我想让我的新场景(MainMenuScene)设置自己的视图控制器。我真的不知道
知道如何在使用转换时实现视图控制器的更改。有人能给我看一段合适的代码吗。非常感谢。

它之所以被称为ViewController是有原因的。您没有切换视图,因此应该继续使用相同的视图控制器。场景特定的代码进入场景实例。您可以通过self.view.window.rootViewController从场景访问视图控制器(从我的头顶,可能不正确)。@learncos2D您是对的,但我不建议直接从
SKScene
访问视图控制器,因为这打破了MVC模式。是的,尽管Sprite工具包不像Cocoa那样具有视图控制器的委托回调机制。
-(void)viewWillLayoutSubviews
{
    SKView * skView = (SKView *)self.view;    
    // Create and configure the scene.
    SKScene * scene = [LogoScene sceneWithSize:skView.bounds.size];
    scene.scaleMode = SKSceneScaleModeAspectFill;

    // Present the scene.
    [skView presentScene:scene];
}