UIImagePickerController相机源问题

时间:2011-03-15 08:39:07

标签: iphone objective-c camera uiimagepickercontroller

这里是我编写的用于在相机源中显示UIImagePickerController的代码。我刚刚在属性的标题中声明了myPhotopicker并保留它。在主代码文件中合成它。然后调用选择器我编写了下面的代码:

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图像) ,并返回主页 - 就像我们启动应用程序时一样。)

  3. 我一直在试图弄清楚这个问题,但不知道该怎么做......请帮助..谢谢。

2 个答案:

答案 0 :(得分:1)

这里是图像pickercontrol的完整代码,试试看solu。这里。

http://www.icodeblog.com/2009/07/28/getting-images-from-the-iphone-photo-library-or-camera-using-uiimagepickercontroller/

此致

Shyam Parmar

答案 1 :(得分:1)

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

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

您还应该实现委托,以便在取消时从视图中删除模态视图控制器(如果您还没有)。

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