使用带有UIImagePickerController的presentModalViewController导致iOS 5崩溃

时间:2012-01-26 14:45:21

标签: objective-c ios5 xcode4.2 uiimagepickercontroller

使用带有UIImagePickerController的presentModalViewController导致iOS 5上的崩溃(它在版本< 5上正常运行),我试图获取设备上的所有专辑,使用'UIImagePickerControllerSourceTypeSavedPhotosAlbum'只获得相机图像,所以当我改变sourceType为'UIImagePickerControllerSourceTypePhotoLibrary'它崩溃,我感谢任何帮助,这是我的代码:

float version = [[[UIDevice currentDevice] systemVersion] floatValue];
    if(version < 5) 
        imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    else                        
        imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        //imgPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

    [self presentModalViewController:imgPicker animated:YES];

1 个答案:

答案 0 :(得分:1)

来自官方文件:

  

要使用包含其默认控件的图像选择器控制器,请执行以下步骤:

     
      
  1. 验证设备是否能够从所需来源中挑选内容。这样做是调用isSourceTypeAvailable:class方法,从“UIImagePickerControllerSourceType”枚举中提供一个常量。

  2.   
  3. 通过调用availableMediaTypesForSourceType:class方法,检查您正在使用的源类型可用的媒体类型。这使您可以区分可用于录制视频的摄像机和仅可用于静止图像的摄像机。

  4.   
  5. 通过设置mediaTypes属性,告诉图像选择器控制器根据您想要提供的媒体类型(静止图像,电影或两者)调整UI。

  6.   
  7. 通过调用当前活动视图控制器的presentViewController:animated:completion:方法呈现用户界面,将配置的图像选择器控制器作为新视图控制器传递。

         

    在iPad上,使用弹出窗口显示用户界面。仅当图像选择器控制器的sourceType属性设置为UIImagePickerControllerSourceTypeCamera时,这样做才有效。要使用弹出控制器,请使用UIPopoverController类参考中的“演示和解除弹出窗口”中描述的方法。

  8.   
  9. 当用户点击按钮选择新拍摄或保存的图像或影片或取消操作时,请使用您的委托对象关闭图像选择器。对于新捕获的媒体,您的代表可以将其保存到设备上的相机胶卷。对于以前保存的媒体,您的代表可以根据您应用的目的使用图像数据

  10.   

也许第4点引起了麻烦。