2010-11-20 7 views
3

Ich habe diese iOS 3.2 App (iPad), die viel Inhalt und ein paar Videos hat.Cocoa-Touch: Wie kann ich MPMoviePlayerController zulassen, aber keine anderen Ansichten automatisch verrosten?

Alle Ansichten sind im Hochformat, mit Ausnahme der Videos, die im Hochformat sind, mit einer Vollbildoption, und ich möchte den Benutzer das Video während des Vollbilds automatisch drehen lassen.

In shouldAutorotateForInterfaceOrientation: lehnt meine App in der Regel Autorotation.

Wie kann ich die Ansicht von MPMoviePlayerController automatisch drehen lassen, aber keine anderen Ansichten in meiner App?

ein paar Ideen, ich habe gedacht:

  1. in shouldAutorotateForInterfaceOrientation::
    return isFullscreenMovieActive;
    , die die App Rotation erlauben würde, während ein Film im Vollbild-Modus befindet. Dies funktioniert perfekt, abgesehen von einem großen Problem, ich kann die App nicht in den Hochformat-Modus zwingen, sobald der Benutzer den Vollbildmodus beendet. (d. h. Benutzer startet App, findet einen Movie-Player, spielt ihn ab, geht in den Vollbildmodus, dreht das Gerät, drückt fertig, jetzt hat er die App im Querformat)
    Gibt es einen akzeptablen Weg, um auf eine UIInterfaceOrientation zu drehen?

  2. Apple empfiehlt eigentlich, die Ansicht MPMoviePlayerController von seiner Ansichtsmethode zu greifen. Wenn sich das Gerät dreht, passiert tatsächlich, dass die App UIWindow eine CGAffineTransform erhält. So könnte ich dies zu MPMoviePlayerController Ansicht machen, aber beim Betreten des Vollbildmodus ändert sich die Ansicht und ist nicht die Ansicht Eigenschaft.
    Also gibt es eine akzeptable Möglichkeit, MPMoviePlayerController 's Vollbildansicht zu bekommen?

Oder gibt es eine bessere Lösung für diese Aufgabe?

+0

Unterstützung Querformat in Ihrer App? –

+0

@tc: das ist es nur, ich möchte es unterstützen, aber ich finde keine Möglichkeit, das iPad zurück in Hochformat zu zwingen, nachdem der Benutzer das Vollbild-Video beendet. Ich habe einen ganz besonderen Fall, in dem die Orientierung aus gutem Grund ein Porträt sein muss. – Prody

Antwort

1

Jeder View-Controller kann die unterstützten Orientierungen mit shouldAutorotateForInterfaceOrientation: zurückgeben. Die Controller Ihrer App sollten nur für die Porträtrotationen den Wert true zurückgeben, mit Ausnahme der MPMoviePlayerController. Wenn Ihre App das Video anzeigt, zeigen Sie den MPMoviePlayerController über Ihren anderen View-Controller mit (oder presentViewController:animated:completion: in iOS 5). Wenn das Video fertig ist, verwerfen Sie den speziellen Movie-Player-Controller, und Ihr anderer Controller sollte immer noch im Portrait-Modus sein.

+0

Funktioniert nicht. Es wird nicht automatisch gedreht – Mann

Verwandte Themen