iOS 6 - Jak uruchomić niestandardowy kod po zmianie orientacji

Tworzę grę, która pozwala urządzeniu na orientację poziomo-lewą lub krajobrazową, a gracz może zmienić orientację podczas pauzy. Kiedy to zrobię, muszę zmienić sposób, w jaki gra interpretuje akcelerometr na podstawie orientacji.

W iOS 5 użyłem willRotateToInterfaceOrientation do przechwytywania zmian i zmiany moich zmiennych, ale jest to przestarzałe w iOS6. Mój istniejący kod wygląda tak:

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

Rozumiem, że zastąpienie to metoda viewWillLayoutSubviews w klasie UIViewController. Buduję tę grę w cocos2d 2.1 i nie wydaje się, aby w projekcie demonstracyjnym była klasa UIViewController, więc nie jestem pewien, jak ją włączyć i jak powinien wyglądać kod, aby ta praca działała.

questionAnswers(1)

yourAnswerToTheQuestion