0

いくつかのチュートリアルを確認しましたが、コードが正しいことがわかりましたが、最終的に画像が表示されません。エラーは発生しませんが、設定しようとしている画面の画像が空白のままです。

これが私のヘッダーファイルです

@interface homeViewController : UIViewController<UIImagePickerControllerDelegate, UINavigationControllerDelegate>

@property (weak, nonatomic) IBOutlet UIImageView *avatarImage;
@property (weak, nonatomic) IBOutlet UIButton *photoButton;

@property (nonatomic, retain) UIImagePickerController *imgPicker;

- (IBAction)setPhoto;

@end

そして、これが関連するメソッドです

- (IBAction)setPhoto 
{
    self.imgPicker = [[UIImagePickerController alloc] init];
    self.imgPicker.sourceType=UIImagePickerControllerSourceTypeCamera;
    self.imgPicker.delegate=self;
    self.imgPicker.allowsEditing = YES;
    self.imgPicker.showsCameraControls=YES;

    [self presentModalViewController:self.imgPicker animated:YES];
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker 
{ 
    [picker dismissModalViewControllerAnimated:YES]; 
}


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];

    self.avatarImage = [[UIImageView alloc] init];
    self.avatarImage.image = image;
    [self dismissModalViewControllerAnimated:YES];
}

ここにブレークポイントを配置すると:[self dismissModalViewControllerAnimated:YES]; image変数に値があるのがわかりますが、self.avatarImageには0x00000000があります

4

3 に答える 3

2

指定したので、情報キーallowsEditing = NOを使用する必要があります。UIImagePickerControllerOriginalImage

注: 編集が行われない場合、'EditedImage' はデフォルトで 'OriginalImage' になる可能性があります。その場合、「画像」変数は有効になり、self.avatarView の UIImageView の表示が原因になります。

于 2012-06-08T19:51:34.367 に答える
1

間違ったデリゲート メソッドを使用しています。使用する

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

使用しているデリゲート メソッドは、iOS 3.0 で廃止されました。

于 2012-06-08T19:44:46.953 に答える