使用导航控制器的开始屏幕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操作。