2011-08-03 153 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。但爲什麼它可以在沒有問題的情況下使用相機膠捲? –