Modal-View-Controller-force-Querformat in iOS 6
Ich habe einen UITabBarController präsentiert im Portrait-Modus. Auf eine der Registerkarten, ich habe eine Schaltfläche, die zeigt, dass ein UIViewController Modal (Ein einfaches storyboard segue führt die Aktion aus).
Möchte ich dieses modal-Ansicht angezeigt, im Landscape-Modus, aber ich kann es nicht erhalten, zu drehen, automatisch.
Habe ich diese in die modalen views controller
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
Habe ich landscapeLeft der .plist unterstützt Ausrichtungen (obwohl dies ermöglicht auch die TabBar gedreht werden, was ich nicht will)
Habe ich auch Hinzugefügt, das für die Kommentarzeichen vor der ViewDidLoad des modal anzeigen
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;
aber ich kann einfach nicht, es zu drehen, von selbst.
Dank
BEARBEITEN ----
Scheint es shouldAutoRotate ist nicht einmal genannt!
Auch, ich versuche zu erkennen, die Orientierung und der code unten zeigt immer 2, unabhängig von der Ausrichtung!
if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait) {
NSLog(@"1");
self.hostView.frame = CGRectMake(0, 60, 200, 255);
} else {
NSLog(@"2");
self.hostView.frame = CGRectMake(0, 45, 480, 255);
}
EDIT 2 ---
Mein bad. Ich denke, ich sollte erwähnt haben, ich war mit iOS 6. Das display dreht sich automatisch auf iOS 5.
shouldAutorotateToInterfaceOrientation ist veraltet, so muss ich Lesen, bis auf die neuen Methoden.
- aus meiner bisherigen Erfahrung mit diesem, es gibt keine Möglichkeit, erzwingen Sie einen viewController angezeigt werden, die in einer bestimmten Orientierung. Sie können wählen, ob Sie die Ausrichtung zu ändern oder nicht, aber nicht erzwingen. es war eine Enttäuschung für mich...
- Das ist ein bisschen dumm, wirklich!!!! Ich habe ein Diagramm, das passt nur im Querformat. Also Sie sagen, Apple will mir zeigen, dass es geschraubt wird, bis der Benutzer schaltet sein Gerät aus. Das klingt nicht richtig, obwohl ich noch nicht eine Lösung gefunden, so mögen Sie Recht haben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
-(BOOL)shouldAutorotate
von UIViewController unter jedem Container (wie UINavigationController) wird nicht aufgerufen von IOS6.Versucht, eine Lösung mit-Kategorie hinzufügen-Methode, um vorhandene Klasse UINavigationController.
innerhalb der shouldAutorotate Methode, die Sie aufrufen können shouldAutorotate-Methode in jedem view-controller selbst.viewControllers. In der Tat, Sie können gehen, um Ihr Kind view-controller.
Wenn Sie erzwingen möchten, dass die rotation in iOS6, Ihre rootviewController sollten diese Methoden implementieren:
In iOS 6 scheint es diese Methode kann helfen, die Kraft einer spezifischen Ausrichtung auf iOS 6.
Ich versuche immer noch, um es an die Arbeit und wird aktualisiert mit Ergebnisse.
Weiß ich genau, das in meiner app, und tun es über shouldAutoRotateToInterfaceOrientation, etwas anders als Sie:
für iOS 6 müssen Sie auch festlegen Fenster.rootViewController = {Ihr root-view-controller}; in Ihrem app-delegate. Ich hoffe, dass dies Ihr Problem ist