Ich entwickle eine iPhone-Anwendung, die mehrere Nibs hat, und sollte nur Landschaft sein.Landscape nur iPhone App mit mehreren Nibs
Die Anwendung wird im Landscape-Modus über ihre Info.plist-Datei gestartet.
Ich habe zwei View-Controller: FirstViewController
und SecondViewController
.
Für jede dieser habe ich eine Nib-Datei, wo die Ansicht in Landschaft ist. Beide Ansichtssteuerungen werden meiner Quelle MainView
als Ausgänge hinzugefügt, und ihre Ansichten werden langsam initialisiert.
Wenn die Anwendung geladen wird, wird wie erwartet die erste Ansicht im Querformat angezeigt. Wenn ich jedoch in die zweite Ansicht umschalte, bleibt das Gerät (oder der Simulator) im Querformat, aber die Ansicht wird gedreht, als ob das Gerät im Hochformat wäre und meine Schnittstelle bremste.
In beiden UIViewController
Klassen ich den folgenden Code haben:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return interfaceOrientation == UIInterfaceOrientationLandscapeRight;
}
und Ansichten in meine app-Delegaten zu wechseln, ich tue:
[viewController.view removeFromSuperview];
[window addSubview:secondViewController.view];
wo viewController
und secondViewController
sind die beiden Auslässe wo die View-Controller angeschlossen sind. Diese
ist, wie die zweite Ansicht sieht in IB: alt text http://img27.imageshack.us/img27/4898/picture1ni.png
und das ist, wie es im Simulator aussieht: alt text http://img402.imageshack.us/img402/4866/picture2wt.png
Warum ist, dass die zweite Ansicht in Landschaft Anzeige aber mit der Schnittstelle gedreht?
Ich möchte nicht mit Transform-Eigenschaften befassen, da das übertrieben scheint.
Bisher erwies sich dies als der zuverlässigste Ansatz, um das zu erreichen, was ich will. – pgb
Dies (die erste Methode) funktionierte für mich. Ich war auf der Suche nach einer Lösung für Stunden und ich habe früher etwas ähnliches versucht (aber in den Ansichten didLoad ...). Wenden Sie die obige Transformation an, bevor Sie sie als Unteransicht hinzufügen. – Wollan