Frage

Ich habe ein wirklich seltsames Orientierungsproblem. Ich habe eine Abfolge von Ansichtscontrollern unter einem Navigationscontroller. Einer von ihnen kann jede Orientierung annehmen. Wenn ich die Orientierung verlasse, muss ich Setorientierung verwenden. Das Lustige ist, dass die Rotation stattfindet, wenn der Übergang auf der nächsten Seite stattfindet. Dies ist normalerweise kein Problem außer einem einzigen Fall - von UideviceOrientationPortraitupsidedown bis hin zu normalen Ursachen alle meine oberen montierten Elemente, die über einen achten Seite einer Seite migrieren.

Es gibt drei Möglichkeiten, wie ich es reparieren könnte:

  1. Trenne die Setorientierung irgendwie von meinem PushViewController -Anruf (so dass die neue Ansicht nicht umdrehen muss)
  2. Stellen Sie meine Gegenstände so ein, dass sie besser im Gerät verankert werden (ich habe überprüft, und sie scheinen zu sein)
  3. Setzen Sie die y -Dimension auf den Elementen der ViewDidload -Methode zurück, aber das scheint falsch zu sein.

Hier ist mein Schub die neue Sicht auf den Stack -Code:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

ResultSelect_ViewController *resultSelect = [[ResultSelect_ViewController alloc] initWithNibName:@"ResultSelect" bundle:nil];
[self.navigationController pushViewController:resultSelect animated:YES];

Findet es noch jemand seltsam, dass der Simulator Sie nicht erlaubt, den Aufwärtstrend auf Porträtverhalten zu testen?

War es hilfreich?

Lösung 3

Der Weg, um den Rotationsfehler beim Drehen von oben zum Porträt zu vermeiden, besteht nicht darin, dies zu tun. Drehen Sie stattdessen zweimal auf halbem Weg (sagen wir UIDeviceOrientationLandscapeRight). Die Frage des Timings ist nicht, den Schlaf zu verwenden, sondern stattdessen implementieren didRotateFromInterfaceOrientation und feuern Sie an diesem Punkt die zweite Rotation (oder drücken Sie sie zur nächsten Ansicht).

Andere Tipps

Nur zu beachten: Apple begann einen statischen (vielleicht sogar dynamischen) Analysator und Blockiert Apps, die private Methoden verwenden (z.B setOrientation:) vom Eintritt in den Laden. Ist letzte Woche einem Freund von mir passiert.

Haben Sie versucht, gegen iPhone OS 3.0 zu bauen und sich nur darauf zu verlassen shouldRotateToInterfaceOrientation:? Das Verhalten scheint fest zu sein (im Vergleich zur Implementierung in 2.x) und macht - zumindest für mich - den Job.

Normalerweise würden Sie die verkehrte Orientierung nicht unterstützen. Das scheint das Standardverhalten von Apple App zu sein und macht Sinn. Der Aufwärtstrend ist nicht wirklich nützlich und kann dem Benutzer Verwirrung verursachen.

Wir hatten ein ähnliches Problem, bei dem Subviews die Hauptansicht auf und ab wandern würden, wenn sie durch den Aufwärtstrendfall blätterten. Wir haben gerade aufgehört, verkehrt herum zu unterstützen, und das löste das Problem im Grunde genommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top