4

我有这个简单的相机视图控制器代码:

UIImagePickerController picker = new UIImagePickerController();
picker.PrefersStatusBarHidden ();
picker.SourceType = UIImagePickerControllerSourceType.Camera;
UIImagePickerControllerCameraDevice dev = picker.CameraDevice;
PresentViewController (picker, false, null);
picker.FinishedPickingMedia += (object sender, UIImagePickerMediaPickedEventArgs e) => BeginInvokeOnMainThread (delegate {DismissViewController (false, null);});

当应用程序启动时,我可以正常拍摄照片,但是当我再次展示选取器时,会出现相机视图,但会显示并冻结上一张照片的帧(图像)。如果我移动我的设备图像不会改变。换句话说,我可以使用一次相机,但我不能使用它两次。我做错了什么?在iOS6设备上它可以完美运行。

4

1 回答 1

4

制作一个pickerDelegate 类对我有用。您只需在构造函数中传递当前的 VC,就可以在 VC 中处理图像。

PickerDelegate

private class pickerDelegate : UIImagePickerControllerDelegate
        {
            private yourVC _vc;

            public pickerDelegate (yourVC controller) : base ()
            {
                _vc = controller;
            }

            public override void FinishedPickingImage (UIImagePickerController picker, UIImage image, NSDictionary editingInfo)
            {
               //Do something whit the image
                _vc.someButton.SetBackgroundImage (image, UIControlState.Normal);

                //Dismiss the pickerVC
                picker.DismissViewController (true, null);
            }
        }

ViewDidLoad

imagePicker = new UIImagePickerController ();

//Set the Delegate and pass the current VC
imagePicker.Delegate = new pickerDelegate (this);
于 2013-11-17T20:22:37.567 回答