5

このコードを使用して、imagepickerでポップオーバーを開きます

-(IBAction)photosAction:(id)sender 
{
// dismiss any left over popovers here
UIImagePickerController* picker = [[UIImagePickerController alloc] init]; 
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
picker.delegate = self; 

UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker];
self.popoverController = popover;          
popoverController.delegate = self;
[popoverController presentPopoverFromBarButtonItem:sender  permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
[picker release];

ただし、これにより、構造体または共用体ではないメンバー'popoverController'に対するこのエラー要求が発生し、このエラー'popoverController'が宣言されていません(この関数での最初の使用)

また、画像が選択されたときにポップオーバーを閉じたいです。

画像が選択されたらポップオーバーを閉じるには、次の関数にどのコードを入力する必要がありますか。

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

助けてくれてありがとう!

4

3 に答える 3

7

このエラーは、popoverControllerがViewControllerで宣言されていないことを意味します。ivarおよびプロパティとしてインターフェイスに追加する必要があります(組み込みではありません)。

@interface ... {
     ...
     UIPopoverController *popoverController;
}
@property (nonatomic, retain) UIPopoverController *popoverController;
@end

実装では、@ synthesizeを追加し、viewDidUnloadでnilに設定し、deallocでリリースします。

ポップオーバーを却下するには、dismissPopoverAnimated:を呼び出します。

[self.popoverController dismissPopoverAnimated:YES];
于 2010-05-12T13:20:30.717 に答える
7

このエラーは、関数にバーボタンアイテムが必要であり、通常のUIボタンを使用していたために発生しました。

于 2010-05-17T09:56:26.840 に答える
0

このコードを使用してみてください:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 400.0, 400.0) 
                         inView:self.view
       permittedArrowDirections:UIPopoverArrowDirectionAny 
                       animated:YES];
于 2013-01-22T08:49:07.013 に答える