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 件のコメント:
コメントを投稿