Unterstützung Querformat für nur eine Ansicht im UINavigationController
Habe ich einen navigation-controller, die haben ein paar view-Controller. Ich brauche Unterstützung in allen Lagen für alle view-Controller außer einem speziellen view-controller unterstützt nur Landschaft. Diese spezielle view-controller wird in der Mitte des Navigations-stack. Ich habe ganz viel recherchiert, aber konnte nicht finden, eine gute Lösung. Hier sind die links, die habe ich gelesen und versucht.
Wie Sie drehen Sie den Bildschirm ins Querformat?
Wie Anz. autom. von portrait zu landscape-Modus?
iPhone - ermöglichen eine Querformat-Orientierung auf nur einen viewcontroller
http://goodliffe.blogspot.com/2009/12/iphone-forcing-uiview-to-reorientate.html
Weiter, ich werde versuchen, zu ersetzen, Navigations-controller mit presentModalViewController
um die spezielle view-controller. Dann werde ich erstellen Sie eine neue Navigations-Ansicht-controller in der Sonder-view-controller, um die push-Folge-view-Controller.
Wenn jemand eine bessere Idee hat, lasst es mich bitte wissen. Wirklich zu schätzen!
UPDATE: habe ich erfolgreich mit der Methode die ich oben beschrieben habe: ersetzen pushViewController
mit presentModalViewController
und erstellen Sie eine neue navigation-controller.
InformationsquelleAutor PokerIncome.com | 2011-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jeden view-controller geschoben, auf den Navigations-Controller-stack unterstützen die gleichen Orientierungen. Dies bedeutet, dass es nicht möglich ist, einige view-Controller nur die hochformat und die andere nur die Unterstützung einer Landschaft. In anderen Worten, alle view-Controller auf dem gleichen navigation-controller Stapel sollte den gleichen in der Stellvertretung:
Aber es gibt eine einfache Lösung für dieses! Hier ist ein Beispiel für die von hochformat auf Querformat. Hier ist die Schritte, es zu tun, und unten ist der code, den es zu unterstützen.
UINavigationController
, fügen Sie eine Instanz des 'fake' - view-controller als root-und eine Instanz der Querformat-Ansicht-controller als second-view-controllerUINavigationController
Instanz als modale vom übergeordneten view-controllerErstellen Sie zuerst ein neues view-controller (FakeRootViewController) mit diesem code:
Hier ist der code zu präsentieren den view-controller, die Sie anzeigen möchten, im Querformat:
Denken Sie daran, dass die landscapeViewController haben, sollte auch diese Umsetzung:
Endlich eine klare Antwort.
InformationsquelleAutor Martin Ingvar Kofoed Jensen
Gibt es eine private API, um die Kraft einer Orientierung ändern. Setzen Sie in Ihrem schob view-controller ist
-viewWillAppear:
:Unterdrücken der compiler die Warnung, hinzufügen .m-Datei Ihres view-Controllers:
Wie immer, gibt es ein Risiko, abgelehnt und die Gefahr, dass in zukünftigen OS-Versionen bei der Verwendung von privaten APIs. Auf eigene Gefahr!
In der Regel, die eine modal-view-controller die bessere Lösung ist in den meisten Fällen.
InformationsquelleAutor Ortwin Gentz
Können Sie machen Aktionen:
Ändern Sie den code entsprechend der schellsan Vorschlag, neben -
Versuchen Sie, fügen Sie currentViewController(die push-to-Navigations-viewController) als Eigentum zu appDelegate. Wenn Sie versuchen, push-view-controller, wird der aktuelle view-controller vor. Next - eine Unterklasse von rootViewController in der navigation-controller. In dieser Unterklasse owerload Methode
Sollte es funktionieren, wenn Du nicht mit einer Navigations-bar und schiebt neue controller nach der Einnahme einer alten
InformationsquelleAutor Arsynth
Sollte es so einfach wie die Umsetzung
in jedem
UIViewController
schob in IhrUINavigationController
. In dem Fall, dass manUIViewController
's Ansicht sollte nicht drehen,return NO
für eine bestimmte Ausrichtung, die in diesem spezifischenUIViewController
.Es ist ein gotcha hier, aber, wenn Ihr
UINavigationController
implementiertes blockiert die viewControllers aus, die Empfänger der Methode. In diesem Fall sollten Sie die Weiterleitung der message an die topViewController mit
Ich habe es versucht. Ich denke, die Probleme, die Sie stoßen möglicherweise spezifisch für Ihre Anwendung. Starten Sie ein neues Projekt zu isolieren, die UINavigationController-rotation problem, dann laufen einige Experimente.
InformationsquelleAutor schellsan
Könnten Sie versuchen, diesen code in Ihre
UINavigationController
zu nennen die aktuell sichtbare AnsichtshouldAutorotateToInterfaceOrientation
. In meinem Fall habe ich dieUINavigationController
imUITabBarController
aber Sie könnte wahrscheinlich passen Sie es den anderen Fällen.InformationsquelleAutor richy