Der animierte Übergang funktioniert im Querformat nicht korrekt

8

Meine App unterstützt nur die richtige Ausrichtung der Landschaft.

Ich versuche, in die Ansicht eines Ansichtscontrollers zu wechseln, aber wenn die Übergangsanimation ausgeführt wird (z. B. Einrollen), wird die Ansicht um 90 Grad gedreht (der Simulator befindet sich also immer noch in Querformatausrichtung) Ansicht erscheint um 90 Grad gedreht). Wenn der Übergang beendet ist, dreht er sich in die richtige Ausrichtung. Mein Code ist unten.

%Vor%

Es sieht so aus, als ob die Ansicht nicht die Benachrichtigung "Ausrichtung geändert" erhält, so dass sie im Hochformat angezeigt wird und nach Abschluss der Animation in die Landschaft wechselt. Ich habe es in IB eingerichtet, so dass alles in Landschaft angelegt ist.

BEARBEITEN: Ich habe auch versucht, einen View-Controller zur IB-Datei hinzuzufügen und zu dieser Ansicht überzugehen (denke vielleicht, dass es zwischen der Initialisierung und dem Übergang zu nahe war), aber das gleiche ist passiert.

    
Ned 16.01.2011, 19:39
quelle

1 Antwort

16

Nun, der Hauptgrund ist, dass self.view (das momentan "weiß", dass Sie sich in der Landschaft befinden) durch eine neue Ansicht ersetzt wird, die diese Informationen nicht enthält. So ist ein Gedanke, aViewController.view als Unteransicht von self.view (vorausgesetzt, dass aViewController undurchsichtig ist). Ah, sagst du, aber dann verliere ich die nette Animation von transitionFromView. Nun, versuchen Sie diese Nettigkeit:

%Vor%

Wenn das aus irgendeinem Grund für Sie nicht funktioniert, ist es eine Alternative, aViewController.view zu "lehren", dass es sich wirklich um eine Landschaftsansicht handelt:

%Vor%

Ein kleinerer zusätzlicher Punkt ist, dass Ihr aViewController undicht ist, also sollten Sie es zu einer beibehaltenen Eigenschaft des übergeordneten ViewControllers machen.

    
mackworth 01.03.2011, 07:42
quelle