我有这个简单的相机视图控制器代码:
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
设备上,它可以完美运行。
制作一个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);