Die programmgesteuerte Einstellung der Ausrichtung in ViewDIDLOAD funktioniert nicht
-
23-12-2019 - |
Frage
Ich habe eine App für iPad erstellt, in der der Homescreen nur im Porträtmodus angezeigt werden soll.Ich habe also den untenstehenden Code in der ViewDID-Ladung verwendet.
generasacodicetagpre.aber es funktioniert nicht.Ich verwende iOS 7 mit Xcode 5. Wenn ich meine App aus dem Landschaftsmodus öffne, wenden sie sich automatisch in den Porträtmodus.Aber ich bekomme so:
aber es sollte so sein:
kann mir jemand helfen, dieses Problem zu lösen. Vielen Dank im Voraus.
Lösung
Diese Methode ist veraltet.Sie können diese Methode nicht mehr verwenden.
https://stackoverflow.com/a/12813644/1405008
Der obige Link gibt Details zum Bereitstellen von Portrait nur für den UIViewController
.
Wenn Sie in den generakodicetagcode gedrückt haben, versuchen Sie dies.
Andere Tipps
Der folgende Code ist im Begriff, einen Navigationskontroller-Ansicht von Porträt in die Landschaft in die Landschaft zu transformieren:
generasacodicetagpre.Ich hoffe nur, Ihnen andere Ideen zur Verfügung zu stellen.
Kopieren Sie diesen Code in Ihrer ViewDIDLOAD
generasacodicetagpre.BOOL gemäß Ihrer Anforderung setzen
Von Ihnen Screenshots kann ich sehen, dass Ihre App-Registerkarte-Basis ist.Ein paar Tage früher hatte ich das gleiche Problem.Ich habe es gelöst.Ich habe eine Frage, die mich fast gleich erhielt.Nach ein paar Stunden Lesen habe ich das Problem gelöst.Es gibt den Link zu meiner Frage und Antwort .
Es gibt viele ähnliche Fragen und Antworten auf so, aber irgendwie arbeitete keiner von ihnen für mich, da ich den nur-Porträtmodus auf dem iPhone und den nur landschaftsmodus zulassen mussteiPad , also teilen Sie meine Lösung:
- .
-
Entfernen Sie alle Methoden, die sich auf die Geräteorientierung beziehen (
shouldAutoRotate, supportedInterfaceOrientations, preferredInterfaceOrientations
CDECDE usw.), da sie miteinander widersprüchlich sind -
In Projekteinstellungen Aktivieren Sie alle 4 Modi: Porträt, auf dem Kopf stehend, Landschaft links, Landschaft rechts
-
wählte ein Verfahren zum Identifizieren von Gerätetyp (iPhone oder iPad).Ich benutze, dass
UIScreen.mainScreen().bounds.height which
nicht ideal ist, aber meine Bedürfnisse anpassen -
Platzieren Sie das Folgende in Appdelegate
func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask { if UIScreen.mainScreen().bounds.height < 760 { //iPhone UIApplication.sharedApplication().setStatusBarOrientation(.Portrait, animated: false); return UIInterfaceOrientationMask.Portrait; } else { UIApplication.sharedApplication().setStatusBarOrientation(.LandscapeLeft, animated: false); return UIInterfaceOrientationMask.Landscape; } }
auf Xcode getestet 7.1.1 Alle iPhone- und iPad-Simulatoren, die iOS9.1
laufen lassen