1

私は xcode 4.5.2 を使用してUIImagePickerControllerおり、navigationBar ベースのアプリで使用したいのですが、ユーザーが画像を選択した後に画像が空白のままでない限り、すべてが完璧に機能します。

ユーザーはボタンをタップする必要があります->カメラを選択するか、ActionSheetから既存のものを選択します->画像を選択してから..何も表示されません!!

私はデリゲート<UINavigationControllerDelegate,UIActionSheetDelegate, UIImagePickerControllerDelegate>を追加し、IBのすべてを適切にリンクしました..この方法について確信がないことを除いて、それは非常に確信しています:

- (void) imagePickerController:(UIImagePickerController *)thePicker didFinishPickingMediaWithInfo:(NSDictionary *)imageInfo{

[[imgPicker parentViewController] dismissViewControllerAnimated:YES completion:nil];

    UIImage *img = [imageInfo objectForKey:@"UIImagePickerControllerEditedImage"];
    currentImg.image = nil;
    self.currentImg.image = img;

}

私もこれを使用しました:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
image.image = img;
[[picker parentViewController] dismissModalViewControllerAnimated:YES];
}

そして何も起こらなかった..

4

2 に答える 2

1

解決した

この行を追加するのを逃しました:

    self.imgPicker.delegate = self;

ビューでDidLoad :)

于 2013-01-06T03:40:42.090 に答える
0

[info objectForKey:UIImagePickerControllerOriginalImage];編集した画像の代わりに使ってみてください。通常、編集した画像が存在するかどうかを確認し、存在する場合はそれを使用し、存在しない場合は元の画像を使用します。

このようなもの:

- (void) imagePickerController:(UIImagePickerController *) picker didFinishPickingMediaWithInfo:(NSDictionary *) info {
    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
    UIImage *originalImage, *editedImage, *imageToSave;

    // Handle a still image capture
    if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo) {
        editedImage = (UIImage *) [info objectForKey:
                                   UIImagePickerControllerEditedImage];
        originalImage = (UIImage *) [info objectForKey:
                                     UIImagePickerControllerOriginalImage];

        if (editedImage) {
            imageToSave = editedImage;
        } else {
            imageToSave = originalImage;
        }
    }

    self.currentImg.image = imageToSave;
}
于 2013-01-06T02:56:38.617 に答える