2015-01-04 116 views
0

所以我真的很想搞清楚如何在按下按钮时切换场景。基本上,我想制作一个“开始游戏”按钮。有很多谷歌的答案,他们似乎都没有帮助。无论是语法错误还是应用程序崩溃。无论如何,这是我的目标。我有一个gameviewcontroller,正确地让我的按钮,并成功地与按钮按下(用于打印一个字符到控制台)的方法进行通信。现在,在我的Title.m(我在开始现场),我有像这样的方法:点击切换场景的按钮

-(void) gScene { 
    GameScene* gameScene = [[GameScene alloc] initWithSize:self.size]; 
    [self.view presentScene:gameScene]; 
} 

我也有方法,我Title.h,这是导入GameViewController。 在我的GameViewController中,与我按钮按下链接的方法称为startGame。这就是startGame的样子:

-(void)startGame { 
    Title* title = [[Title alloc] init]; 
    [title gScene]; 
} 

我希望在按钮按下时,场景从标题切换到我的GameScene。我究竟做错了什么?

+0

你必须用接口初始化你的视图控制器。你在使用笔尖还是故事板? –

回答

0

如果使用笔尖:

GameScene *vc = [[GameScene alloc] init]; 
[self presentViewController:vc animated:YES completion:nil]; 

如果使用故事板:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YOUR_STORYBOARD_NAME" bundle:nil]; 
GameScene *vc = [storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER_OF_IB_VC"]; 
[self presentViewController:vc animated:YES completion:nil]; 

如果以编程方式创建的情景:(Apple Documentation)

UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    levelViewController = [[LevelViewController alloc] init]; 
    window.rootViewController = levelViewController; 
    [window makeKeyAndVisible]; 

你的问题出在“self.size “代码用于设置框架的边界,第三个例子可以帮助你rs

+0

我编程做了一切。我没有使用笔尖或故事板。我很欣赏这种回应,但仍然有点失落。 –

+0

感谢您的回复,但我仍不确定如何应用您发布的以编程方式创建的场景代码。我是否会在gScene方法中放置该代码(或者更确切地说,它应用于我的项目中的代码),还是应该将它放在startGame方法中并完全放弃gScene方法?这是我想要的: UIWindow * window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; levelViewController = [[Title alloc] init]; window.rootViewController = levelViewController; [window makeKeyAndVisible]; –

+0

对不起,上面的格式,ctrl k(或mac等效,或命令k)由于某种原因不工作。无论如何,我尝试并遇到问题:该levelViewController是一个未声明的标识符,并且标题与UIViewController不兼容的类型。出于好奇心和同样的问题,我用GameViewController替换Title。我不确定如何应用您的代码,并且我已阅读文档。 –