0

まず第一に、私のコードは複雑ではありません。実際、「iPhone開発の開始:iPhoneSDKの探索」の2つのサンプルプログラムを1つのプログラムにまとめただけです。青いビューと黄色のビューを切り替えるViewSwitcherアプリケーションを使用して、YellowViewControllerをカメラアプリケーションのCameraViewControllerに置き換えました。

合計3つのViewControllerがあります。SwitchViewControllerは、BlueViewControllerとCameraViewControllerを切り替えるだけです。

CameraViewController内で、UIImagePickerControllerを使用して画像を選択しようとしています。ピッカーにはpresentModalViewControllerが表示されます。キャッチは、私がこれを横向きでやりたいということです。

2.2.1ではすべてが正常に機能し、ポートレートモードの3.0ではすべてが正常に機能します。

ただし、横向きの3.0では、問題が発生します。SwitchViewControllerを横向きに設定すると、ピッカーを表示しようとすると画面が白くなります。iPhoneを数回転すと、ピッカーの角が見えますが、これは明らかに画面外に表示されていました。

CameraViewControllerを横向きに設定すると、ピッカーがまったく表示されません。

このページには、「[3.0で]最も顕著な変更点は、モーダルビューコントローラーが常に親ビューコントローラーのフレームではなくアプリケーションフレームを使用することです」という手がかりがあると思います。しかし、それが何を意味するのか正確にはわかりません。

どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

0

addSubview親ViewControllerで使用している必要があります。を使用してみてくださいpresentModalViewController:

于 2009-12-10T06:59:59.250 に答える
0

これが意味することは次のとおりだと思います。モーダルビューを呼び出す親ビューコントローラーが画面の一部にすぎないビューを制御している場合でも、モーダルビューは常にフルスクリーンを使用します。これは、カメラ ピッカーのような標準のモーダル ビューでは理にかなっていますが、カスタム モーダル ビューを作成する人がそれを小さくしたい理由は理解できます。

ただし、それが本当に問題の解決に役立つかどうかはわかりません。

質問 -- モーダル ビューを表示して電話を回転させるとどうなりますか?

于 2009-08-02T14:37:45.747 に答える