我已经到了需要为使用 sprite kit 制作的游戏制作开始屏幕的地步。我无法让它与我阅读和观看的任何代码和教程一起显示。
我想使用导航 Controller / View Controller 从开始屏幕开始并将其链接到我的应用,但我不知道如何将我的游戏代码链接到 View Controller 。
使用导航 Controller ,我如何将它作为@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
Best Answer-推荐答案 strong>
此答案基于 here ,但已被翻译成 Objective-C。
您面临的问题是 SKScene 不能直接访问它的 viewController,而只能访问它所在的 View 。您需要手动创建指向它的指针。这可以通过为 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 操作。
关于ios - 使用导航 Controller 作为开始屏幕 ios,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/27096991/
|