2012-11-03 59 views
0

當按下按鈕從前到後翻轉相機時,我的UIImagePickerController凍結,相機關閉。這是我如何從項目中初始化項目中的圖像選擇器控制器對象(其餘代碼已被省略),因爲它與UIimagepickercontroller對象無關。UIImagePickerController當相機翻轉時凍結

//In my .h file 
UIImagePickerController * imgPicker; 

//in my .m file 
-(void)viewDidLoad { 

imgPicker = [[UIImagePickerController alloc] init]; 
imgPicker.delegate = self; 
imgPicker.allowsEditing = YES; 

} 

-(void) takePicture { 

imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
[self presentViewController:imgPicker animated:YES completion:NULL]; 

} 

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

masterImage.image = [info objectForKey:UIImagePickerControllerEditedImage]; 

if(masterImage.image == nil) { 

    masterImage.image = [info objectForKey:UIImagePickerControllerEditedImage]; 

} 

[self dismissModalViewControllerAnimated:YES]; 

} 

-(void) imagePickerControllerDidCancel:(UIImagePickerController *)picker{ 

[self dismissModalViewControllerAnimated:YES]; 

} 

-(void) releaseOutlets { 

[imgPicker release]; 

} 

回答

1

只是爲了規則,更改您的代碼。相反的:

​​

寫在.h文件中:

@property (nonatomic, strong) UIImagePickerController * imgPicker; 

不是在您.m文件合成它:

imgPicker = _imgPicker; 

旁邊每次調用自此屬性調用。

+0

這工作。感謝 – Andrew

-2
  • 首先,你不應該在viewdidload方法中分配init。在-init方法中進行所有的分配。
  • 按照edzio27的建議添加屬性。
  • 再次測試

如果問題仍然存在: - 檢查u的 「接收內存警告」。在內存警告的情況下,再次調用你的viewdidload方法。如果你保持你的分配init的方法,你將每次創建新的實例。

我們遇到了MPMoviePlayerController類似的問題。不知道你是否有同樣的問題。

+0

順便說一下,是不是ios 6. – Anup

+0

很確定這不是真的。 vDL中的init沒有錯。除非它觸發您的應用程序級代碼手動重新加載VC,否則不會在內存警告中調用vDL。 –