2011-01-04 16 views
4

Ich versuche, meine Anwendung zu drehen, wenn das Gerät selbst gedreht wird, aber ich kann es nicht richtig machen. Ich habe die unterstützten Schnittstellen in der Plist-Infodatei hinzugefügt und für die shouldRotateToInterfaceOrientation ja zurückgegeben.iPhone-Schnittstelle aktivieren Ausrichtung

 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) { 
     return YES; 
    } else { 
     return NO; 
    } 
} 

Ist diese Drehung implementiert?
Bitte helfen!

+0

Wenn Sie einen BP für diese Methoden festlegen, wird er beim Drehen des Geräts getroffen? – psychotik

+0

Ich bin mir nicht sicher, was ein BP ist, sorry, ich bin neu in der iOS Programmierumgebung. – Olsi

+0

BP = Haltepunkt –

Antwort

0

Stellen Sie sicher, dass Sie den View-Controllern shouldRotateToInterfaceOrientation hinzugefügt haben, die verschiedene Ausrichtungen unterstützen sollen. Es geht nicht in den App-Delegaten.

+0

Ja, ich habe es jedem View Controller einzeln hinzugefügt. – Olsi

0

Die unterstützende Ausrichtung ist einfach, wenn Sie Standard-UI-Elemente verwenden, vorausgesetzt, dass dies der Fall ist, sind Sie auf dem richtigen Weg.

Wenn Sie einen UITabController verwenden, müssen alle Ansichten die gleichen Ausrichtungen unterstützen, anderenfalls wird das Minimum (z. B. Portrait) angenommen, glaube ich.

Wenn Sie NIBs für Ihre Ansichten verwenden, stellen Sie außerdem sicher, dass bei der Konfiguration der Ansicht in Interface Builder die Option 'Subsviews für Autoresize' aktiviert ist.

+0

Ja, ich habe eine TabBar in der App, und alle Ansichten haben den gleichen Code, den ich oben gepostet habe, aber es rotiert immer noch nicht im Simulator. Die Ansichten haben auch Navigationscontroller, und ich habe sie programmgesteuert hinzugefügt. Kann dies der Grund sein, warum es nicht rotiert? Die anderen Elemente der Ansicht wurden in IB hinzugefügt, und sie drehen sich gut in IB. Vielen Dank für die Zeit :) :) :) – Olsi

0

Wenn Sie UITabBarController verwenden, müssen Sie die Subviews 'shouldAutoratateToInterfaceOrientation aufrufen.

Angenommen, Sie haben zwei Registerkarten. Versuchen Sie, der Methode shouldAutorotateToInterfaceOrientation in der Klasse, die UITabViewController verwendet, die folgenden zwei Zeilen hinzuzufügen.

[[tabBarController.viewControllers objectAtIndex:0] shouldAutorotateToInterfaceOrientation:interfaceOrientation]; 
[[tabBarController.viewControllers objectAtIndex:1] shouldAutorotateToInterfaceOrientation:interfaceOrientation]; 

natürlich die "TabBarController" muss die UITabBarController in Ihrer XIB-Datei über IB verknüpft werden.

Danke,

1

Vielleicht die info.plist versuchen Bearbeitung und auch dort die unterstützten Ausrichtungen hinzufügen?

Ihr Projekt auswählen -> Ziel wählen -> Info -> Unterstützte Schnittstelle Orientierungen und klicken Sie auf das Pluszeichen 4 mal diese Orientierungen unterstützen:

Item 0 Landscape (left home button) 
Item 1 Landscape (right home button) 
Item 2 Portrait (top home button) 
Item 3 Portrait (bottom home button) 

Hoffe, es hilft!