3

横向きのみをサポートするアプリを開発しています。を使用してUIImagePickerController、ライブラリから画像やビデオを選択します。アプリは iOS-5 以前では正常に機能していますが、イメージ ピッカー コントローラーを提示しようとするとクラッシュします。クラッシュ後に次のメッセージが表示されます。

*キャッチされない例外 'UIApplicationInvalidInterfaceOrientation' が原因でアプリを終了しています。

4

2 に答える 2

8

@rockyが言ったように、使用するにはアプリケーションにPotraitモードを追加する必要がありUIImagePickerControllerます

Info.plist でサポートされているインターフェイスの向き または、これをランドスケープのみのアプリデリゲートクラスに追加します

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
    return UIInterfaceOrientationMaskAll;
}

ダニエル氏の回答から、ランドスケープのみのアプリに適したソリューションを見つけました。アプリケーションにランドスケープのみをサポートする必要があるためUINavigationController、このようなカテゴリを追加するだけです

@implementation UINavigationController (LandscapeOnly)

- (NSUInteger) supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape;
}
@end

これをviewControllersに追加すると、うまくいきます。

于 2012-12-07T12:22:07.117 に答える
2

UIImagePickerController のドキュメントから:

重要: UIImagePickerController クラスは縦向きモードのみをサポートします。このクラスはそのまま使用することを意図しており、サブクラス化はサポートしていません。このクラスのビュー階層はプライベートであり、1 つの例外を除いて変更してはなりません。カスタム ビューを cameraOverlayView プロパティに割り当て、そのビューを使用して追加情報を表示したり、カメラ インターフェイスとコード間の相互作用を管理したりできます。

このコントローラーを使用する場合は、サポート インターフェースの向きにポートレート モードを追加する必要があります。

于 2012-10-20T00:34:03.390 に答える