iOS 6 - Comment exécuter un code personnalisé lorsque l'orientation change

Je suis en train de créer un jeu qui permet à l'appareil d'être dans le paysage, à gauche ou paysage-droit de l'orientation, et le joueur peut changer l'orientation alors que c'est en pause. Quand ils le font j'ai besoin de changer la façon dont le jeu de l'interprète de l'accéléromètre en fonction de l'orientation.

Dans iOS 5, j'ai utilisé le willRotateToInterfaceOrientation pour attraper les changements et modifier mes variables, mais c'est déconseillé dans iOS6. Mon code ressemble à ceci:

    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;
    }
}

Je comprends que le remplacement est le viewWillLayoutSubviews méthode dans la classe UIViewController. Je suis en train de construire ce jeu en cocos2d 2.1 et il ne semble pas être un UIViewController classe dans le projet de démonstration, donc je ne suis pas clair sur la façon de l'intégrer et de la façon dont le code devrait ressembler pour faire ce travail.

source d'informationauteur James Morrison