2011-03-15 114 views
1

好的,这里是我写的在相机源中显示UIImagePickerController的代码。我只是在属性的头文件中声明myPhotopicker并保留它。在主代码文件中将其合成。然后调用picker我写下面的代码:UIImagePickerController摄像头源问题

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
     if (myPhotopicker==nil) { 
      myPhotopicker = [[UIImagePickerController alloc] init]; 
      myPhotopicker.delegate = self; 
     }// create once! 

     myPhotopicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
     [self presentModalViewController:myPhotopicker animated:NO]; 
} 

在调用它之后,有一些事情对应用程序来说很奇怪。

  1. 有时候,当有背景(iPhone4的)上运行许多应用程序,该应用程序将无法加载相机和崩溃的应用程序。虽然它会毫无问题地加载CameraRoll/PhotoAlbums。

  2. 如果摄像头视图可以加载(当背景中运行的应用程序较少时),轻点摄像头视图上的取消按钮会导致应用程序自身重新启动(其中Default.png图像很快显示,并回到主页 - 就像我们开始应用时一样)。

我一直在试图找出这个问题,但不知道该怎么办...请帮助..谢谢。

+0

我面临同样的问题,并没有得到任何可行的解决方案。请参阅我的问题:http://stackoverflow.com/questions/4806547/application-get-crashed-when-taken-the-picture-in-iphone-4g。谢谢。 – Pugal 2011-03-15 08:45:15

+0

@Pugal Devan,感谢您的评论,但我的情况有点不同。它在相机快门打开之前坠毁。未拍照后。如果相机出现,我将可以拍照等等,而不会有任何问题。 – GeneCode 2011-03-15 08:52:01

+0

您是否认为您可以让您的代码示例符合标准缩进样式(任何标准都可以)?现在,阅读起来非常困难。 – 2011-03-15 17:58:10

回答

1

而不是你的 '创造一次' 逻辑尝试创建每次释放。

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
    myPhotopicker = [[UIImagePickerController alloc] init]; 
    myPhotopicker.delegate = self; 
    myPhotopicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    [self presentModalViewController:myPhotopicker animated:NO]; 
    [myPhotopicker release]; 
} 

你也应该实现委托,从视图中删除模态视图控制器时,它被解雇(如果你还没有)。

您还应该检查当前类是否符合UINavigationConrollerDelegate协议。

+0

不,这没有帮助。我尝试了你的建议,但是当我按下相机视图上的取消按钮时,应用程序仍会重新启动。 – GeneCode 2011-03-16 17:03:41