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

			try 
			{
				if (!IsShown) {

					IsShown = true;

					UIImage image = new UIImage (NSData.FromArray (Image));
					Image = null;

					selector = new CropViewDelegate (this);
					TOCropViewController picker = new TOCropViewController (image);
					picker.Delegate = selector;

					PresentViewController (picker, false, null);

				}
			}
			catch (Exception ex) {
				Debug.WriteLine (ex.Message);
			}
		}
		public static void DidCropToImage (this ITOCropViewControllerDelegate This, TOCropViewController cropViewController, global::UIKit.UIImage image, CGRect cropRect, global::System.nint angle)
		{
			if (cropViewController == null)
				throw new ArgumentNullException ("cropViewController");
			if (image == null)
				throw new ArgumentNullException ("image");
			global::ApiDefinition.Messaging.void_objc_msgSend_IntPtr_IntPtr_CGRect_nint (This.Handle, Selector.GetHandle ("cropViewController:didCropToImage:withRect:angle:"), cropViewController.Handle, image.Handle, cropRect, angle);
		}
 public static void DidCropToImage(this ITOCropViewControllerDelegate This, TOCropViewController cropViewController, global::UIKit.UIImage image, CGRect cropRect, global::System.nint angle)
 {
     if (cropViewController == null)
     {
         throw new ArgumentNullException("cropViewController");
     }
     if (image == null)
     {
         throw new ArgumentNullException("image");
     }
     global::ApiDefinition.Messaging.void_objc_msgSend_IntPtr_IntPtr_CGRect_nint(This.Handle, Selector.GetHandle("cropViewController:didCropToImage:withRect:angle:"), cropViewController.Handle, image.Handle, cropRect, angle);
 }
		public override void DidCropToImage (TOCropViewController cropViewController, UIImage image, CoreGraphics.CGRect cropRect, nint angle)
		{
			DidCrop = true;

			try 
			{
				if (image != null)
					App.CroppedImage = image.AsPNG().ToArray();

			}
			catch (Exception ex) {
				Debug.WriteLine (ex.Message);
			}
			finally
			{
				if (image != null) {
					image.Dispose ();
					image = null;
				}
			}

			parent.DismissViewController (true, App.PopModal);
		}
 public static void DidFinishCancelled(this ITOCropViewControllerDelegate This, TOCropViewController cropViewController, bool cancelled)
 {
     if (cropViewController == null)
     {
         throw new ArgumentNullException("cropViewController");
     }
     global::ApiDefinition.Messaging.void_objc_msgSend_IntPtr_bool(This.Handle, Selector.GetHandle("cropViewController:didFinishCancelled:"), cropViewController.Handle, cancelled);
 }
 public virtual void DidFinishCancelled(TOCropViewController cropViewController, bool cancelled)
 {
     throw new You_Should_Not_Call_base_In_This_Method();
 }
 public virtual void DidCropToImage(TOCropViewController cropViewController, global::UIKit.UIImage image, CGRect cropRect, global::System.nint angle)
 {
     throw new You_Should_Not_Call_base_In_This_Method();
 }
		public override void DidFinishCancelled (TOCropViewController cropViewController, bool cancelled)
		{
			parent.DismissViewController (true, App.PopModal);
		}
		public static void DidFinishCancelled (this ITOCropViewControllerDelegate This, TOCropViewController cropViewController, bool cancelled)
		{
			if (cropViewController == null)
				throw new ArgumentNullException ("cropViewController");
			global::ApiDefinition.Messaging.void_objc_msgSend_IntPtr_bool (This.Handle, Selector.GetHandle ("cropViewController:didFinishCancelled:"), cropViewController.Handle, cancelled);
		}
		public virtual void DidFinishCancelled (TOCropViewController cropViewController, bool cancelled)
		{
			throw new You_Should_Not_Call_base_In_This_Method ();
		}
		public virtual void DidCropToImage (TOCropViewController cropViewController, global::UIKit.UIImage image, CGRect cropRect, global::System.nint angle)
		{
			throw new You_Should_Not_Call_base_In_This_Method ();
		}