使用导航控制器启动屏幕ios

时间:2014-11-24 02:24:45

标签: ios objective-c sprite-kit

我已经到了需要为使用精灵套件制作的游戏制作启动画面的地步。我无法通过我阅读和观看过的任何代码和教程来展示它。

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

使用导航控制器,如何将其作为@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

1 个答案:

答案 0 :(得分:2)

此答案基于here,但已被翻译为Objective-C。

您遇到的问题是SKScene无法直接访问它的viewController,而只是它所包含的视图。您需要手动创建指向它的指针。这可以通过为SKScene创建属性来完成:

@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操作。