Frage

Ich versuche, eine iPhone-Anwendung zu erstellen, die zwei Subviews im Hauptfenster hat. Jede Ansicht verfügt über eine eigene UIViewController Unterklasse zugeordnet ist. Auch innerhalb jeder Implementierung des Controllers, ich habe die folgende Methode hinzugefügt:

-(BOOL)shouldAutorotateToInterfaceOrientation:
 (UIInterfaceOrientation)interfaceOrientation {
    return YES;
   }

So würde ich beide der Ansichten zu reagieren auf Veränderungen in der Orientierung erwarten. Dies ist jedoch nicht der Fall. Nur die zuerst Blick auf das Hauptfenster reagiert auf Ausrichtung der App. (Wenn ich tauschen die Reihenfolge der Ansichten hinzugefügt werden, dann nur die andere Ansicht reagiert Mit anderen Worten, entweder arbeiten -.. Aber nur einer nach dem anderen)

Warum ist das? Ist es nicht möglich, die Orientierungsänderungen von mehr als einer Ansicht zu behandeln?

Danke!

EDIT: Jemand anderes hatte diese Frage, so dass ich das Kopieren meine Lösung hier:

Ich konnte dieses Problem lösen, indem eine Stammansicht und einen Root-View-Controller mit dem Verfahren der Bereitstellung „shouldAutoRotate ...“ und das Hinzufügen von meinen anderen Ansichten als Subviews der Stammansicht. Die Subviews die Auto-Drehverhalten erben und ihre zugehörigen View-Controller sollten nicht außer Kraft setzen müssen „shouldAutoRotate ...“

War es hilfreich?

Lösung 2

Schließlich geht hier vor meiner Lösung zu veröffentlichen:

Im Grunde kam es auf eine „Wurzel“ UIViewController zu haben. Dabei habe ich die Methode:

-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
        return YES;
}

Ich habe auch die Ansichten, die ich als Subviews dieser Wurzel UIViewContoller die UIView automatisch drehen wollte. Diese Subviews auch View-Controller haben, aber tun nicht Überschreibung shouldAutorotateToInterfaceOrientation. In der Tat, das Hinzufügen dieser Methode zu diesem View-Controller scheint keinerlei Auswirkungen zu haben. Nur die Stammansicht contoller des shouldAutorotateToInterfaceOrientation scheint zu funktionieren und alle Subviews erhalten gedreht richtig.

Andere Tipps

Sie müssen die ShouldAutorotateToInterfaceOrientation Methode auf allen drei Controllern außer Kraft setzen Sie haben.

Sie können versuchen, diese Methode in der Klasse zu implementieren, die Ansicht, die beide Ansichten Ihrer Viewcontroller enthält

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