2016-09-19 5 views
5

Buttonアクションを使用してUIImagePickerControllerを表示しようとしています。私のプロジェクトはエラーでクラッシュします:UIImagePickerControllerを表示するとアプリケーションがクラッシュする

私は、ストーリーボードのNavigationControllerに埋め込まれたViewControllerしか持っていません。

UIImagePickerController imagePicker; 

public override void ViewDidLoad() 
{ 
    base.ViewDidLoad(); 

    this.setupImagePicker(); 

    CapturePhotoButton.TouchUpInside += delegate 
    { 
     this.AddMedia(); 
    }; 
} 

public void setupImagePicker() 
{ 
    imagePicker = new UIImagePickerController(); 
    imagePicker.SourceType = UIImagePickerControllerSourceType.Camera; 
    imagePicker.ModalPresentationStyle = UIModalPresentationStyle.Popover; 
    imagePicker.MediaTypes = UIImagePickerController.AvailableMediaTypes(
     UIImagePickerControllerSourceType.Camera); 
    imagePicker.FinishedPickingMedia += HandleFinishedPickingMedia; 
    imagePicker.Canceled += (sender, e) => { 
     imagePicker.DismissModalViewController(true); 
    }; 
} 

public void HandleFinishedPickingMedia(object sender, 
    UIImagePickerMediaPickedEventArgs e) 
{ 
    bool isImage = false; 

    switch (e.Info[UIImagePickerController.MediaType].ToString()) 
    { 
     case "public.image": 
      isImage = true; 
      break; 
     case "public.video": 
      break; 
    } 

    if (isImage) 
    { 
     UIImage originalImage = e.Info[UIImagePickerController.OriginalImage] as UIImage; 
     if (originalImage != null) 
     { 
      PreviewImageView.Image = originalImage; 
      imagePicker.DismissViewController(true, null); 
     } 
    } 
} 

public void AddMedia() 
{ 
    //Crashes on this line 
    this.NavigationController.PresentViewController(imagePicker, true, null); 
} 
+0

ViewController自体にPresentViewControllerメソッドがありませんか?あなたはそれが何か違いがあるかどうかを見るためにそれを試してみることができますか? 'this.PresentViewController(imagePicker、true、null);' – Cheesebaron

+0

も同様に試してみましたが、プレゼンテーションではまだクラッシュしています – DrPatience

+0

これも行ってしまいましたか? @Cheesebaron – DrPatience

答えて

3

プライバシーを追加しました - あなたのInfo.plistにカメラの使用法の説明をし、それが問題

+0

まったく同じ問題が発生し、これが修正されました。私はアプリのiTunes Connectの分析がこれをキャッチしていないことに驚いている。ありがとうございました! – JHawkZZ

2

は、カメラの使用のためにあなたのInfo.plistに以下を追加します。解決:以下のコードスニペット

<key>NSCameraUsageDescription</key> 
<string>This app needs access to the camera to take photos.</string> 

ライブラリの場合:

<key>NSPhotoLibraryUsageDescription</key> 
<string>This app needs access to photos.</string> 
関連する問題