• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Ausrichtung des Home Screens des iPad ermitteln

  • Ersteller Ersteller Mitglied 7974
  • Erstellt am Erstellt am

Mitglied 7974

Gast
Hi!

Gibt es eine Möglichkeit, die Bildschirmausrichtung des iPads zu bestimmen, wenn eine App gestartet wird? Ich möchte beim Start einer App wissen, in welcher Ausrichtung sich der Homescreen befunden hat, um darauf reagieren zu können. Die Methoden UIDevice#orientation, UIApplication#statusBarOrientation und UIViewController#interfaceOrientation liefern bei mir stets falsche Werte bzw. können mir diese in AppDelegate#application:didFinishLaunchingWithOptions: noch nicht korrekt zurück liefern.

Meine Hypothese ist also, dass ich es entweder geschafft habe, meine App kaputt zu programmieren, oder schlicht noch nicht die richtige Methode gefunden habe. Mir ist es halt wichtig, dass ich die aktuelle Bildschirmausrichtung erhalte, bevor das GUI aufgebaut und angezeigt wird.

Bin über jeden Hinweis dankbar.

Danke und Gruß
Matthias
 
also rein theoretisch müsstest du im AppDelegate über das Accelerometer Framework abfragen können wie die Werte im Beschleunigungssensor sind und dann kann man auch darauf weiter aufbauen ;) So hätt ich es jetzt versucht, wenn die "Standard" Methoden nicht klappen oder erst sehr viel später gestartet werden ;)
 
Hi!

Danke für den Hinweis. Ich werd's mal probieren und gerne Bescheid geben, wie es damit geklappt hat.

Gruß
Matthias
 
Device orientation kann während des Startprozesses UIDeviceOrientationUnknown ausgeben.
Und selbst wenn nicht, gibt es noch Face Up und Face Down, die dir die Suppe versalzen können.

UIVIewController's interfaceOrientation sollte aber an sich funktionieren sobald der ViewController auch geladen ist.
 
@Thyraz: Genau das meinte ich, als ich schrieb, dass ich vielleicht meine App „kaputtprogrammiert“ haben könnte. Mein allen anderen View Controllern übergeordneter View Controller gibt ja schon nicht die korrekte Ausrichtung aus. Irgendwas ist da faul und entweder habe ich das verbrochen (irgendwas falsch konfiguriert oder eingebunden) oder mir fehlt aktuell noch die Kenntnis um die korrekten Methoden.
 
Ohne das jetzt getestet zu haben und nur auf Grund von Überlegungen über DInge die irgendwo in meinem Hinterkop liegen:

Soweit ich weiß, ist UIWindow zuständig für das versenden der Orientation Messages.
Nur ein ViewController (kann auch der NavigatioNViewController sein wenn einer vorhanden ist) erhält diese Nachricht, weitere ViewController müssen daher unter diesem hinzugefügt werden, nicht als zweiter ViewController dem Window.

Ebenfalls hat UIWindow eine property "rootViewController".
Evtl. muss diese auch richtig gesetzt sein um den Rotation Status zu erhalten?
 
Eigentlich sollte es so sein, ja. Mein Main View Controller (wenn man so will) ist ein UITabBarController. Der sollte eigentlich vom Main Window die Ausrichtungsinfo erhalten, zumal der Controller dort tatsächlich auch als rootViewController angegeben ist. Es mag sein, dass dadurch, dass die App anfangs iPhone-only war, die Konfiguration oder sonst irgendein Kladderadatsch nun falsch eingestellt ist und das UIWindow grundsätzlich am Anfang Portrait-Ausrichtung schickt. Bei einer App, die von Anfang an Universal ist, könnte es sein, dass es gleich auf Anhieb funktioniert.

Demnächst fange ich eh mit einer neuen App an, die von Anfang an Universal ist. Ich berichte hier gerne darüber, ob sich dadurch Verbesserung ergibt.