iOS 6 - Como executar um código personalizado quando a orientação muda

Estou criando um jogo que permite que o dispositivo esteja na orientação paisagem esquerda ou paisagem direita, e o jogador pode alterar a orientação enquanto estiver em pausa. Quando preciso, preciso mudar a maneira como o jogo interpreta o acelerômetro com base na orientação.

No iOS 5, usei o método willRotateToInterfaceOrientation para capturar alterações e alterar minhas variáveis, mas isso está obsoleto no iOS6. Meu código existente é assim:

    if(toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)      
        rect = screenRect;

    else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight){
        rect.size = CGSizeMake( screenRect.size.height, screenRect.size.width );
    GameEngine *engine = [GameEngine sharedEngine];
    if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft){
        engine.orientation = -1;
    } else {
        engine.orientation = 1;
    }
}

Eu entendo que a substituição é o método viewWillLayoutSubviews na classe UIViewController. Eu estou construindo este jogo no cocos2d 2.1 e não parece haver uma classe UIViewController no projeto demo, então não estou claro sobre como incorporá-lo e como o código deve parecer para que isso funcione.

questionAnswers(1)

yourAnswerToTheQuestion