我已经到了需要为使用精灵套件制作的游戏制作启动画面的地步。我无法通过我阅读和观看过的任何代码和教程来展示它。
我想使用导航控制器/视图控制器从开始屏幕开始并将其链接到我的应用程序,但我不确定如何将我的游戏代码链接到视图控制器。
使用导航控制器,如何将其作为@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
答案 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操作。