iOS

2014-08-21, ios

iPadでUIImagePickerController

iPadでImagePickerを利用する際には、UIPopoverControllerに一旦載せて…という手順が一般的かと思いきや、ImagePickerでカメラを起動する場合は話が違うみたいです。

On iPad, if you specify a source type of UIImagePickerControllerSourceTypeCamera, you can present the image picker modally (full-screen) or by using a popover. However, Apple recommends that you present the camera interface only full-screen.
From UIImagePickerController's description.

モーダルウィンドウ(フルスクリーン)の使用を推奨する、とありますし、実はpopoverでカメラを起動すると向きがおかしくなる不具合に悩まされていたのですが、フルスクリーンに切り替えただけで解消されました。確かに、小さな画面にカメラが出て来るのは使い辛い面もあったので、こちらが正解なのでしょう。という訳で(カメラ起動だけで使うなら)、以下のコードでiPadでも動きます。ちなみに、delegateを設定するにはUIImagePickerControllerDelegateとUINavigationControllerDelegateの2つを(…なんて言うんだっけ?)必要があります。

UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
ipc.delegate = self;
ipc.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:ipc animated:YES completion:nil];

参考URL

この記事は役に立ちましたか?