0

Zunächst ist mein Code nicht komplex - in der Tat sind es nur zwei sample programs von "Beginn iPhone Development: Erkundung des iPhone SDK", in einem Programm kombiniert. Ich nahm die ViewSwitcher-Anwendung, die zwischen einer blauen und einer gelben Ansicht wechselt und den YellowViewController durch den CameraViewController aus der Kameraanwendung ersetzt.presentModalViewController für UIImagePicker schlägt im Landscape-Modus für iPhone 3.0

Ich habe drei ViewControllers insgesamt. SwitchViewController wechselt einfach zwischen BlueViewController und CameraViewController.

In CameraViewController, versuche ich einen UIImagePickerController zu verwenden, um ein Bild auszuwählen. Der Picker wird mit presentModalViewController präsentiert. Der Haken ist, dass ich das in Querformat machen möchte.

Alles funktioniert gut unter 2.2.1, und alles funktioniert gut in 3.0 im Hochformat.

In 3.0 unter Landschaftsausrichtung jedoch brechen die Dinge. Wenn ich SwitchViewController in Querformat einstelle, wird mein Bildschirm weiß, wenn ich versuche, den Picker darzustellen. Wenn ich das iPhone ein paar Mal rotiere, kann ich eine Ecke des Pickers sehen, die anscheinend außerhalb des Bildschirms angezeigt wurde.

Wenn ich CameraViewController im Querformat einstelle, wird der Picker überhaupt nicht angezeigt.

Ich denke, this page kann einen Hinweis haben, wenn es heißt "Die auffälligste Änderung [in 3.0] kann ich sehen ist, dass der modale Ansicht-Controller immer den Anwendungsrahmen anstelle des Rahmens des übergeordneten Ansicht-Controllers verwenden wird." Ich verstehe jedoch nicht genau, was das bedeutet.

Jede Hilfe wird sehr geschätzt. Vielen Dank!

+0

'iOS 3.x' wird nicht mehr unterstützt, diese Frage muss möglicherweise geschlossen werden. – darvids0n

Antwort

0

Ich glaube, was das bedeutet, ist dies: Modale Ansichten verwenden immer den gesamten Bildschirm, auch wenn der Eltern-View-Controller, der sie aufruft, eine Ansicht steuert, die nur Teil des Bildschirms ist. Dies ist für standardmäßige modale Ansichten wie die Kameraauswahl sinnvoll, aber ich kann sehen, warum jemand, der eine benutzerdefinierte modale Ansicht erstellt, möchte, dass sie kleiner wird.

Nicht sicher, ob das wirklich hilft, Ihr Problem zu lösen.

Frage - was passiert, wenn Sie die modale Ansicht aufrufen und dann das Telefon drehen?

+0

Gute Frage. Wenn ich die modale Ansicht aufrufe und DANN das Handy rotiere, wechselt die modale Ansicht gut in den Querformat-Modus. – niels

0

Sie müssen in Ihrem übergeordneten View-Controller addSubview verwendet haben, versuchen Sie es mit presentModalViewController:.