横向きのみをサポートするアプリを開発しています。を使用してUIImagePickerController
、ライブラリから画像やビデオを選択します。アプリは iOS-5 以前では正常に機能していますが、イメージ ピッカー コントローラーを提示しようとするとクラッシュします。クラッシュ後に次のメッセージが表示されます。
*キャッチされない例外 'UIApplicationInvalidInterfaceOrientation' が原因でアプリを終了しています。
横向きのみをサポートするアプリを開発しています。を使用してUIImagePickerController
、ライブラリから画像やビデオを選択します。アプリは iOS-5 以前では正常に機能していますが、イメージ ピッカー コントローラーを提示しようとするとクラッシュします。クラッシュ後に次のメッセージが表示されます。
*キャッチされない例外 'UIApplicationInvalidInterfaceOrientation' が原因でアプリを終了しています。
@rockyが言ったように、使用するにはアプリケーションにPotraitモードを追加する必要がありUIImagePickerController
ます
または、これをランドスケープのみのアプリデリゲートクラスに追加します
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
return UIInterfaceOrientationMaskAll;
}
ダニエル氏の回答から、ランドスケープのみのアプリに適したソリューションを見つけました。アプリケーションにランドスケープのみをサポートする必要があるためUINavigationController
、このようなカテゴリを追加するだけです
@implementation UINavigationController (LandscapeOnly)
- (NSUInteger) supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
@end
これをviewControllersに追加すると、うまくいきます。
UIImagePickerController のドキュメントから:
重要: UIImagePickerController クラスは縦向きモードのみをサポートします。このクラスはそのまま使用することを意図しており、サブクラス化はサポートしていません。このクラスのビュー階層はプライベートであり、1 つの例外を除いて変更してはなりません。カスタム ビューを cameraOverlayView プロパティに割り当て、そのビューを使用して追加情報を表示したり、カメラ インターフェイスとコード間の相互作用を管理したりできます。
このコントローラーを使用する場合は、サポート インターフェースの向きにポートレート モードを追加する必要があります。