2011-08-03 100 views
0

我用iphone相机拍照时出现问题。我有以下代码:iOS拍照相机问题

- (IBAction)openCamera { 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    picker.delegate = self; 
    [self presentModalViewController:picker animated:YES]; 
    [picker release]; 
} 

- (IBAction)openCameraRoll { 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    picker.delegate = self; 
    [self presentModalViewController:picker animated:YES]; 
    [picker release]; 
} 

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

    UIImage *img = image; 

    Image *imgHelp = [[Image alloc] init]; 


    UIImage *newImg = [imgHelp imageByScalingProportionallyToSize:CGSizeMake(220, 220)  image:img]; 
    [self setImage:newImg]; 

    [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
} 

- (void)setImage:(UIImage*)i { 
    [imageBtn setImage:i forState:UIControlStateNormal]; 
} 

我发现了这个问题。如果我使用调试器对其进行了测试,我看到以下内容:

如果我从相机胶卷拍摄照片,它可以正常工作。所有对自我的引用都是可用的。 所以程序可以设置图像。

但是,如果我用照相机拍摄照片,则所有对自身的引用(imageBtn p.e.)都不可用,因此程序无法设置图像。

我的错误是什么?

感谢您的回答

+0

你正在设置委托picker.delegate = self;什么是自我(什么样的类obj)? –

+0

@interface ProfileCompletion01:UIViewController

+0

您可以再次解释您的陈述吗?“但是,如果我用相机拍照,所有自我引用(imageBtn pe)都不可用,所以程序不能设置图像“** Image * imgHelp = [[Image alloc] init]; **是**图像**自定义类吗?在初始化imgButton的地方,是否参考了xib?如果它在xib中是否将IBOutlet设置为xib? –

回答

0

我不知道你为什么要重写的UIButton

你可以有居然说

[self.imageBtn setImage:newImg forState:UIControlStateNormal]; 

首先的setImage方法你imageBtn不可用,这里你的imageBtn在加载ProfileCompletion01时被初始化,所以你是在什么地方释放它的? 您可以使用awakeFromNib方法为您的UItableViewCell再次初始化imageBtn。

+0

我试着用[additionalImage awakeFromNib]和[imageBtn awakeFromNib]它不工作...我不释放imageBtn。但为什么它可以在没有问题的情况下使用相机胶卷? –