0

iPadのイメージピッカーはポップオーバーである必要があることを知っています。試し続けますが、ポップオーバーを呼び出すボタンをタップすると機能せず、クラッシュします。

   -(IBAction)addPhoto:(id)sender{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    popover=[[UIPopoverController alloc]
             initWithContentViewController:imagePicker];
    [popover presentPopoverFromRect:((UIButton *)sender).frame
                             inView:self.view
           permittedArrowDirections:UIPopoverArrowDirectionAny
                           animated:YES];
}


    -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo {

    // Delete any existing image.
    NSManagedObject *oldImage = imageClass.image;
    if (oldImage != nil) {
        [imageClass.managedObjectContext deleteObject:oldImage];
    }

    // Create an image object for the new image.
    NSManagedObject *myImage = [NSEntityDescription insertNewObjectForEntityForName:@"Image" inManagedObjectContext:imageClass.managedObjectContext];
    imageClass.image = myImage;

    // Set the image for the image managed object.
    [image setValue:selectedImage forKey:@"image"]; 
    [self dismissViewControllerAnimated:YES completion:nil];
}
4

2 に答える 2

1

取得している例外に基づいて、問題はsenderaddPhotoメソッドの が実際にはUIBarButtonItemではなく であるということUIButtonです。ポップオーバーの表示方法を、ボタンのフレームを使用する方法から、バー ボタンから表示する方法に変更する必要があります。

-(IBAction)addPhoto:(UIBarButtonItem *)sender {
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    popover = [[UIPopoverController alloc]
         initWithContentViewController:imagePicker];

    [popover presentPopoverFromBarButtonItem:sender
        permittedArrowDirections:UIPopoverArrowDirectionAny
        animated:YES];
}
于 2012-11-30T03:19:34.513 に答える
0

ポップオーバー コントローラーまたはストア コンテンツ コントローラーを格納するプロパティを作成してみてください。メソッドの終了直後にView Controllerの1つが解放されるようです。また、iOS 7 では、ポップオーバーでの UIImagePickerController の動作がひどいです。 これは関連する質問です。

于 2013-09-26T15:45:29.383 に答える