cocos2d 2.0-rc2: termina el director y reinicia

Tengo un juego de cocos2d que usa menús UIKit, así que solo uso el marco para un controlador de vista, que es el juego en sí. Además, solo tiene una escena. Desde cocos2d 2.0 el propio director es unUIViewController subclase, así que solo lo empujo en miMenuViewController cuando el usuario toca un botón de inicio:

-(void)startGameButtonPressed {

    CCDirectorIOS* director = (CCDirectorIOS *) [CCDirector sharedDirector];


    // Create an CCGLView with a RGB565 color buffer, and a depth buffer of 0-bits
    self.glView = [CCGLView viewWithFrame:CGRectMake(0, 0, 480, 320)
                              pixelFormat:kEAGLColorFormatRGB565    //kEAGLColorFormatRGBA8
                              depthFormat:0 //GL_DEPTH_COMPONENT24_OES
                       preserveBackbuffer:NO
                               sharegroup:nil
                            multiSampling:NO
                          numberOfSamples:0];

    // attach the openglView to the director
    [director setView:glView];
    [director runWithScene:[GameLayer scene]];
    [director setDelegate:(id <CCDirectorDelegate>) [[UIApplication sharedApplication] delegate]];
    [self.navigationController pushViewController:director animated:YES];
}

Esto funciona bien por primera vez cuando se llama al método, cuando el usuario inicia el primer juego. Cuando el juego termina, llamo[[CCDirector sharedDirector] end].

La mayor parte de la configuración del director se realiza en appDelegate (se toma sin cambios de la plantilla predeterminada de Cocos2d). Solo puse elCCGLView como una propiedad retenida en miMenuViewController, porque de lo contrario la aplicación falla cuando[[CCDirector sharedDirector] end] se llama y elCCGLView no se retiene Creo que podría ser un error cocos2d. En[[CCDirector sharedDirector] end] el marco llama[self setView:nil], pero aún intenta acceder a la vista más adelante (probablemente en otro hilo).

El problema ahora es que en la segunda llamada de mi método anterior (cuando el usuario desea iniciar otro juego desde el menú),startGameButtonPressed, el director es empujado pero la pantalla permanece en negro. El juego está funcionando y respondiendo, simplemente no veo nada. ¿Puede alguien ayudarme con eso por favor?

Respuestas a la pregunta(4)

Su respuesta a la pregunta