私はcocos2dの初心者で、cocos2dの内部からセグエを実行しようとしています。
現在、次の機能を設定しています。
-(void) return_mm {
NSLog(@"returned to main menu");
UIViewController * con = self.controller;
[con performSegueWithIdentifier:@"Game2MenuSegue" sender:con];
}
CCMenuItemが押されるたびに実行されます。これは実際に一度は機能します。しかし、ゲームシーンに戻ると、メニューボタンが機能しなくなります。
具体的には、セグエが呼び出され、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];
}
}