Ich habe eine App, die in allen Ansichten bis auf Porträt gesperrt ist, mit Ausnahme von einem, das AllButUpsideDown ist. Der Ansatz, den ich verwende, ist die Aktivierung von Hochformat, Querformat links und Querformat rechts im Menü Allgemeine Einstellungen der Ziele. Dann haben Unterklassen von UINavigationController und UITabBarController, die func supportedInterfaceOrientations() -> UIInterfaceOrientationMask
überschreiben und gibt .Portrait
zurück.Rotationsverhalten iOS8 vs iOS9
Dann in meiner Ansicht Controller, der in der Lage sein soll, gedreht zu werden Ich habe auch func supportedInterfaceOrientations() -> UIInterfaceOrientationMask
überschrieben und gibt .AllButUpsideDown
zurück. Dies funktioniert gut, da dieser Ansichtscontroller nur als ein Modal dargestellt wird, d. H. .
All dies funktioniert wie erwartet auf iOS9 auf iOS8, aber wenn ich den drehbaren View-Controller im Querformat schließe, wird die Benutzeroberfläche auf Querformat skaliert, so dass sie im Hochformat angezeigt wird.
Wer weiß, was ist zu tun? Komme ich von vornherein auf diese Rotationssache? Irgendwelche sauberen Korrekturen? Problemumgehungen? Hacks?
UPDATE
Mein Problem von mir entstand eine benutzerdefinierte Übergang mit dem View-Controller zu präsentieren und zu entlassen, die sich drehen können. Ich habe versucht, einige Zeit mit verschiedenen Lösungen zu arbeiten. Der Lösung, der ich am nächsten kam, war die Verwendung eines separaten UIWindow für meinen drehbaren View-Controller, der funktionierte, bis auf ein Problem, bei dem die Trägerleiste immer noch in der falschen Ausrichtung war, was ich nicht lösen konnte.
Die Lösung (nicht wirklich eine Lösung) Ich ging mit war nur die benutzerdefinierte Übergang in iOS9 + verwenden und auf iOS8 verwenden die Standard-Gegenwart Übergang.
Kontrolle dieses http://stackoverflow.com/questions/38308919/unable-to-force-uiviewcontroller-orientation/38308987#38308987 –