私は現在、iPad 用の iPad アプリケーションを開発しています。そこでは、UIOpOverController を UIImagePickerController と組み合わせて使用し、ユーザーが iPad から画像を選択できるようにします (sourceType UIImagePickerControllerSourceTypeSavedPhotosAlbum を使用)。これは期待どおりにうまく機能しますが、クライアントは当然、SavedPhotos アルバムを閲覧することしかできません。UIImagePickerControllerSourceTypePhotoLibrary を使用するようにピッカーを変更すると、ウィンドウには引き続きアルバムが表示されますが、静的になります (つまり、スクロールはできますが、アルバムを選択することはできず、上下にスクロールすると、ビューはポップするだけです)画面をもう一度タップすると元に戻ります)。
PhotoLibrary を正しく機能させるには、追加の設定が必要ですか? 私は多くのアプローチを試みましたが、ここではすべて運が悪いです。
セットアップは、UIImagePicker を使用して UIPopOverController を生成する OpenGL ビューです。わかりやすくするために、コードを次に示します。
-(void)showPicker
{
if(![pController isPopoverVisible])
{
[pController presentPopoverFromRect:CGRectMake(50,100,200,300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
}
else
{
pController dismissPopoverAnimated:YES];
}
}
-(void)awakeFromNib
{
picker = [[UIImagePickerController alloc] init];
pController = [[UIPopoverController alloc] initWithContentViewController:picker];
// Code works properly if I only set it to UIImagePickerControllerSourceTypeSavedPhotosAlbum
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
else if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) picker.sourceType =UIImagePickerControllerSourceTypeSavedPhotosAlbum;
else { NSLog(@"Error: Could not pick appropriate sourceType"); }
picker.mediaTypes = [NSArray arrayWithObjects:(NSString*)kUTTypeImage, nil];
picker.delegate = self;
pController.delegate = self;
picker.allowsEditing=NO;
}