2016-04-23 102 views
0

你好,我是在iOS版應用程序,拍照並保存到相機膠捲,我在DismissModalViewController得到這個工作的錯誤:的UIImagePickerController」不包含定義‘DismissModalViewControllerAnimated’Xamrian的iOS

Severity CodeError CS1061 'UIImagePickerController' does not contain a definition for 'DismissModalViewControllerAnimated' and no extension method 'DismissModalViewControllerAnimated' accepting a first argument of type 'UIImagePickerController' could be found (are you missing a using directive or an assembly reference?) 

我不知道我做錯了我的繼承人代碼類:

using Foundation; 
using System; 
using System.CodeDom.Compiler; 
using UIKit; 
using CoreGraphics; 
using AssetsLibrary; 


namespace ToolBelt.iOS 
{ 
    partial class Camera : UIViewController 
    { 
     public Camera (IntPtr handle) : base (handle) 
     { 
     } 



     UIImagePickerController imagePicker; 
     UIImagePickerController picker = new UIImagePickerController(); 



     public override void ViewDidAppear(bool animated) 
     { 
      base.ViewDidAppear(animated); 

      imagePicker = new UIImagePickerController(); 
      imagePicker.PrefersStatusBarHidden(); 

      imagePicker.SourceType = UIImagePickerControllerSourceType.Camera; 

      //Add event handlers when user finished Capturing image or Cancel 
      imagePicker.FinishedPickingMedia += Handle_FinishedPickingMedia; 
      imagePicker.Canceled += Handle_Canceled; 

      //present 
      PresentViewController(picker, true,() => { }); 
     } 

     protected void Handle_FinishedPickingMedia(object sender, UIImagePickerMediaPickedEventArgs e) 
     { 
      // determine what was selected, video or image 
      bool isImage = false; 
      switch (e.Info[UIImagePickerController.MediaType].ToString()) 
      { 
       case "public.image": 
        Console.WriteLine("Image selected"); 
        isImage = true; 
        break; 
       case "public.video": 
        Console.WriteLine("Video selected"); 
        break; 
      } 

      // get common info (shared between images and video) 
      NSUrl referenceURL = e.Info[new NSString("UIImagePickerControllerReferenceUrl")] as NSUrl; 
      if (referenceURL != null) 
       Console.WriteLine("Url:" + referenceURL.ToString()); 

      // if it was an image, get the other image info 
      if (isImage) 
      { 
       // get the original image 
       UIImage originalImage = e.Info[UIImagePickerController.OriginalImage] as UIImage; 
       if (originalImage != null) 
       { 
        // do something with the image 
        Console.WriteLine("got the original image"); 
        imageView.Image = originalImage; // display 
       } 
      } 
      else 
      { // if it's a video 
       // get video url 
       NSUrl mediaURL = e.Info[UIImagePickerController.MediaURL] as NSUrl; 
       if (mediaURL != null) 
       { 
        Console.WriteLine(mediaURL.ToString()); 
       } 
      } 
      // dismiss the picker 
      imagePicker.DismissModalViewControllerAnimated(true); 
     } 

     void Handle_Canceled(object sender, EventArgs e) 
     { 
      imagePicker.DismissModalViewControllerAnimated(true); 
     } 
    } 
} 

我使用Xamrian的iOS,使這個應用程序,所以有這方面的幫助將是驚人的!

在此先感謝 !

回答

0

更換DismissModalViewControllerAnimated

imagePicker.DismissModalViewControllerAnimated(true); 

隨着DismissModalViewController

imagePicker.DismissModalViewController (true); 

Animated布爾參數處理動畫。

+0

工作非常感謝你! :) – Phoneswapshop

2

您應該使用imagePicker.DismissViewController(true, null);關閉圖像選擇器。

第一個參數指示控制器是否被解除動畫。

第二個參數是動畫完成時將調用的方法。

+0

@SushiHangover:https://developer.xamarin.com/api/member/MonoTouch.UIKit.UIViewController.DismissViewController/p/System.Boolean/MonoTouch.Foundation.NSAction/ – Giorgi

+0

啊,你可以施展作爲一個'因爲UIImagePickerController沒有'NSAction'參數 – SushiHangover

+0

@SushiHangover:我不認爲你必須施放,我只是從基類調用方法。 – Giorgi