我是 cocos2d 的初学者,我正在尝试从 cocos2d 内部执行 segue。
目前我设置了以下功能:
-(void) return_mm {
NSLog(@"returned to main menu");
UIViewController * con = self.controller;
[con performSegueWithIdentifier:@"Game2MenuSegue" sender:con];
}
每当按下 CCMenuItem 时运行。这实际上确实有效一次。但是,当我重新回到游戏场景时,菜单按钮停止工作。
更具体地说,调用 segue 并运行 preparetosegue 函数,但没有发生转换。另一个视图的 viewWillAppear 函数永远不会运行。
我可能在做一些愚蠢的事情,所以如果有人对此有建议,将不胜感激。
这是我目前在游戏视图控制器的 willDidAppear 函数中拥有的。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if ([[CCDirector sharedDirector] isPaused]) {
[[CCDirector sharedDirector] resume];
[mainView addSubview:[[CCDirector sharedDirector] openGLView]];
return;
}
EAGLView *glview = [EAGLView viewWithFrame:self.view.bounds
pixelFormat:kEAGLColorFormatRGB565 // kEAGLColorFormatRGBA8
depthFormat:0 // GL_DEPTH_COMPONENT16_OES
];
CCDirector *director = [CCDirector sharedDirector];
//[director setDisplayStats:kCCDirectorStatsFPS];
// Enables High Res mode (Retina Display) on iPhone 4 and maintains low res on all other devices
if( ! [director enableRetinaDisplay:YES] )
CCLOG(@"Retina Display Not supported");
[window makeKeyAndVisible];
[mainView addSubview:glview];
[director setOpenGLView:glview];
CCScene *scene = [CCScene node];
GameScene * gs =[GameScene sceneWithController:self];
[gs returnFromMenu];
[scene addChild:gs];
if (director.runningScene) {
[director replaceScene:scene];
} else {
[director runWithScene:scene];
}
}