2017-01-12 2 views
1

Ich habe eine App mit 4 Viewcontrollern. Man muss nur im Querformat dargestellt werden. Die anderen 3 können entweder Querformat oder Hochformat sein.Objective-c mit UIInterfaceOrientationMask, um die Ausrichtung zu steuern

In meinem Bereich Bereitstellungsinformationen, Geräteausrichtung, habe ich Upside Down, Landscape Left und Landscape Right aktiviert. In Info.plist habe ich 3 unterstützte Schnittstellenausrichtungen: Querformat links, Querformat rechts und Hochformat oben.

In meiner Ansicht Controller, wo ich NUR Landschaft will ich haben: - (BOOL) sollteAutorotate { zurück JA; }

-(UIInterfaceOrientationMask) supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskLandscapeLeft+UIInterfaceOrientationMaskLandscapeRight; 
} 

In den anderen 3 Ansicht Controller I haben: - (BOOL) shouldAutorotate { return YES; }

-(UIInterfaceOrientationMask) supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskAll; 
} 

Mit all diesen Einstellungen: 1) Die Ansicht, dass nur in der Landschaft in der Landschaft ist nur sein sollte, das ist so gut. 2) Die anderen 3 Ansichten können im Querformat links, Querformat rechts und Hochformat mit der Taste oben angezeigt werden. 3) Wenn ich versuche, den Bildschirm in der anderen Hochformatposition zu drehen, dreht er sich nicht.

Also, ich ändere die Deployment-Seite oder die Info.plist-Seite, um diese vierte Option einzuschließen, die nicht überprüft wird. Das Ergebnis ist, dass die anderen drei Ansichten in Ordnung rotieren, aber die Landschaftsmodusansicht jetzt in Hochformat rotiert.

Was muss ich tun, um meine erste Landschaftsansicht zu erhalten, und die anderen 3, um sich beliebig zu drehen?

Antwort

0

Sie können diesen Link verwenden, um Ihre Orientierung zu steuern, das hat mir geholfen.

https://stackoverflow.com/a/24928474/6438500

+0

Danke für die Antwort. – Mark

+0

Das Ausschneiden und Einfügen des Codes in den View-Controller führte zu 2 Fehlern bei der Verwendung der nicht deklarierten Variablen appDelegate. – Mark

+0

Hier ist AppDelegate Instanz von AppDelegate. Sie müssen Ihre AppDelegate-Instanz erstellen. – Sunny

Verwandte Themen