2012年1月8日日曜日

UIImagePickerControllerの使い方(4)

書くのをすっかり忘れてたので間が空いたけど、次は画像選択。

iPadでは、UIPopoverController内で表示させる必要がある。
iPod/iPhoneではNavigation配下のビューでOK。

@interface SetupTableViewController : UITableViewController
<
// デリゲートが必要
UIPopoverControllerDelegate,
UINavigationControllerDelegate,
UIImagePickerControllerDelegate
>
{
    UIPopoverController *imagePopoverController;    // imagePicker用
    IBOutlet    UIImagePickerController *imagePicker;
}

nib上でUIImagePickerControllerを配置、接続しておく。
imagePopoverController=[[UIPopoverController alloc]initWithContentViewController:imagePicker];
imagePicker.delegate=self;
imagePopoverController.delegate=self;
[imagePopoverController presentPopoverFromBarButtonItem:parentSender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

画像を選択すると、デリゲートが呼び出される。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

画像そのものは、UIImage *で
    [info objectForKey:UIImagePickerControllerOriginalImage]
で得られる。

iPadではPopover内でimagePickerControllerを開くので、閉じるのもそれが行わなければならない。このあたり、iPhoneとは異なるので注意(ちまたの書籍では有名本を含めほとんどこの点については記載されていない。)
    [imagePopoverController dismissPopoverAnimated:YES];









0 件のコメント:

コメントを投稿