使用导航控制器的开始屏幕ios

我已经到了需要使用sprite套件制作我的游戏的开始屏幕。 我不能让它显示任何我已阅读和观看的代码和教程。

我想使用导航控制器/视图控制器在开始屏幕上开始,并将其链接到我的应用程序,但我不知道如何将我的游戏代码链接到视图控制器。

使用导航控制器,我将如何将其作为@IBAction声明拖到我的游戏代码中? 谢谢。

用当前代码编辑:

ViewController.m:

@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; SKView * skView = (SKView *)self.view; skView.showsFPS = YES; skView.showsNodeCount = YES; SKScene * scene = [MyScene sceneWithSize:skView.bounds.size]; scene.scaleMode = SKSceneScaleModeAspectFill; scene.viewController = self; [skView presentScene:scene]; } 

MyScene.h:

 @interface MyScene : SKScene <SKPhysicsContactDelegate> @property (strong, nonatomic) UIViewController *viewController; @end 

这个答案基于这里的一个,但已经被翻译成Objective-C。

你面临的问题是SKScene不能直接访问它的viewController,而只是包含它的视图。 您需要手动创build一个指向它的指针。 这可以通过为SKScene创build一个属性来完成:

 @interface GameScene : SKScene @property (strong, nonatomic) UIViewController *viewController; @end 

然后,在viewController类中,就在[skView presentScene:scene];

 scene.viewController = self; 

现在,您可以直接访问viewController。 只需在这个viewController上调用segue:

 -(void)goToHomeScreen { [self.viewController.navigationController popToRootViewControllerAnimated:YES]; } 

您可以用类似的方式执行其他navigationController操作。