Frage

Ich habe eine Anwendung, die auf einigen (aber nicht alle) Bildschirmen dreht, und ich möchte auch eine UIView als Overlay hinzufügen, die auf allen Bildschirmen zeigen, so dass ich dachte, dass ich es zum Fenster hinzufügen würde. Das Problem ist jetzt, dass, wenn ich das Gerät drehen, die Bildschirm drehen, aber die Überlagerungsansicht nicht.

Ich habe auch versucht, zwei UIViewControllers, einen für die normalen Sachen, eine für die Überlagerungsansicht, aber ich habe keine großen Hoffnungen auf das, und ich hatte recht. Nur ein UIViewController jemals tatsächlich drehen.

Wie drehe ich das Overlay mit der Schnittstelle, hoffentlich, ohne Code zu jeder View-Controller hinzuzufügen, die die Überlagerung mit ihm zu drehen, dreht.

War es hilfreich?

Lösung

Ich denke, Ihr Verdacht richtig ist. Sie haben die Subview zu jedem View-Controller hinzuzufügen. Ich weiß nicht, warum, aber wenn Sie mehrere Ansichten als Subviews des Fensters hinzufügen, wird nur der erste bekommt seine - (BOOL) ShouldAutorotateToInterfaceOrientation:. (UIInterfaceOrientation) interfaceOrientation auf jeder Orientierungsänderung genannt

Ich habe nicht versucht, aber es scheint, dass Sie möglicherweise einen einzigen übergeordnete View-Controller erstellen könnten Sie als Subview des Fensters hinzuzufügen, die Ihre Navigationssteuerung sowie Overlay-View-Controller enthalten. Vielleicht wäre es richtig -shouldAutotrotateToInterfaceOrientation nennen. Auch dies ist hypothetisch, wie ich es nicht versucht haben, aber ich bin sicher, dass es nicht nur die Überlagerungsansicht zum Fenster hinzufügen funktionieren wird.

Mit freundlichen Grüßen

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