繁体   English   中英

无法从UIImagePickerController获取图像

[英]Can't get image from UIImagePickerController

我检查了一些教程,据我所知我的代码是正确的,但是最后我没有得到图像。 我没有收到任何错误,但是我尝试设置的屏幕上的图像仍然空白。

这是我的头文件

@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

由于您指定了allowsEditing = NO您需要使用UIImagePickerControllerOriginalImage信息键。

注意:如果未进行任何编辑,则“ EditedImage”可能默认为“ OriginalImage”。 在这种情况下,“ image”变量将是有效的,UIImageView在self.avatarView中的显示将是罪魁祸首。

您使用了错误的委托方法。 采用

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

您正在使用的委托方法已在iOS 3.0中弃用。

线

[picker dismissModalViewControllerAnimated:YES];
[picker release];

使用信息字典之前必须先出现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM