2009-06-06 6 views
0

Ich habe Probleme, eine Lösung zu finden, um meine Ausrichtung in einem View-Controller zu ändern, der nicht der Stamm-Controller ist. Im Dienstprogramm-Projekt, das einen Root-View-Controller, einen Hauptansicht-Controller für die Hauptansicht und einen Flip-Side-View-Controller für die umgekehrte Ansicht hat, kann ich die Ausrichtung nur vom Root-View-Controller aus steuern. Die Implementierung des Codes in der Haupt- oder der Rückseitenansicht wirkt sich nicht auf die Ausrichtung aus.Wie kann ich Ausrichtungen innerhalb eines View-Controllers umschalten, der nicht der Stamm-Controller ist?

Was ich möchte, ist in der Lage zu sein ist die Hauptansicht laden in Landschaft und die umgekehrte Ansicht im Hochformat. Ist das möglich, oder muss ich den Root-View-Controller mit verschiedenen Orientierungseinstellungen neu laden, wenn ich zwischen Haupt- und Seitenansichten umschalte?

EDIT: Um zu verdeutlichen, möchte ich die Hauptansicht in nur eine Querformatausrichtung und die umgekehrte Ansicht in Hochformat sperren - diese Ansichten sollten nicht in der Lage sein zu drehen. - Vielen Dank.

Antwort

1

In Ihrem "Hauptfenster" .m Datei implementieren Sie die folgende Methode.

-(BOOL)shouldAutorotateToInterfaceOrientation:UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); // or whatever orientation is needed 
} 

In Ihrer "flipside view" .m Datei implementieren Sie die folgende Methode.

-(BOOL)shouldAutorotateToInterfaceOrientation:UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

in Ihrer Anwendung zu delegieren oder irgendwo anders in Ihrem Startvorgang können Sie die folgende Methode aufrufen, die Schnittstelle Orientierung Landschaft beim Start gesetzt:

[application setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]; // should match the first method above. 

Hoffnung, das hilft.

Cheers-

+0

Ich habe Ihren Code in einem Standard-Dienstprogramm-Projekt hinzugefügt, und habe immer noch im Grunde die gleichen Probleme. Die Statusleiste wird in den Querformatmodus verschoben (tatsächlich bleibt sie auch in der Hochformatansicht im Querformat), aber meine Hauptansicht befindet sich immer noch im Hochformat. Wenn ich die Ausrichtungssteuerelemente in den Haupt- oder Seitenansichten-Controllern auskommentiere, passiert nichts. Wenn ich den Ausrichtungscode im Stammansicht-Controller auskommentiere, werden beide Ansichten entweder im Querformat oder im Hochformat angezeigt - ich möchte nicht. Ich vermute, Sie meinten Hauptansicht.m wenn Sie Hauptfenster.m sagten. –

Verwandte Themen