Zwingen UIInterfaceOrientation änderungen auf dem iPhone

Ich bin strugging mit dem ein iPhone-Anwendung, die erfordert gerade ungefähr jedem push oder pop in den Nav-Controller-Stack, um die Richtung ändern.

Grundsätzlich die erste Ansicht ist die portrait -, die zweite Landschaft das Dritte Porträt wieder (ja, ich weiß, dies ist weniger als ideal, aber das ist das design, und ich habe, um es zu implementieren).

Ich bin durch die diversen Ratschläge hier....

Wie erkenne ich eine rotation auf dem iPhone, ohne das Gerät autorotating?

Kraft hochformat auf drängen neue Sicht auf UINavigationViewController

Gibt es eine dokumentierte Möglichkeit, um die iPhone-Orientierung?

Aber ohne vollen Erfolg.

Einstellung link gegen 3.1.2 meiner Lektüre der verlinkten Artikel oben scheint zu zeigen, dass, wenn meine portrait-Ansicht schiebt sich eine Ansicht, mit

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    //Return YES for supported orientations
    return ((interfaceOrientation == UIInterfaceOrientationLandscapeRight) );
}

Dann, die anzeigen erscheinen sollen gedreht werden, um Landschaft. Was passiert ist, es erscheint in seiner "kaputten" portrait form, dreht sich dann richtig wie das Gerät gedreht wird.

Wenn ich pop-controller zurück zu meinem portrait-Ansicht (die eine entsprechende shouldAutoRotate...) dann bleibt in broken landscape-Ansicht, bis das Gerät zurückgegeben-in das hochformat.

Habe ich auch versucht, das entfernen Sie alle shouldautorotate Nachrichten, und stattdessen zwingt rotation durch die Umwandlung der anzeigen. Diese Art der arbeiten, und ich habe herausgefunden, dass durch das verschieben der status-bar (die eigentlich versteckt in meiner Anwendung) [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight; die Tastatur erscheint, mit der richtigen Ausrichtung, wenn gewünscht.

Das problem bei diesem Ansatz ist, dass die status-bar verwandeln, ist seltsam und hässlich, wenn Sie nicht über eine status bar - ein Schatten ragt über die Seite mit jeder Veränderung.

So. Was vermisse ich.

1) Bin ich falsch im denken, die in 3.1.2 (oder möglicherweise früher) shouldAutorotateToInterfaceOrientation sollte die gewünschte Orientierung einfach durch drücken der Controller ?

2) gibt es eine andere Möglichkeit, Tastaturen erscheinen in der richtigen Ausrichtung.

3) die undokumentierte API-Aufrufe der Weg zu gehen (bitte nicht!)

InformationsquelleAutor Andiih | 2010-04-22
Schreibe einen Kommentar