public void IF_OpenCamera(ISupportMediaResultListener _supportMediaResultListener, SyncPhotoOptions options, int _CodeRequest) { CodeRequest = _CodeRequest; supportMediaResultListener = _supportMediaResultListener; UIStoryboard storyboard = UIStoryboard.FromName("SupportMediaStoryboard", null); SupportCameraController controller = (SupportCameraController)storyboard.InstantiateViewController("SupportCameraController"); controller.syncPhotoOptions = options; NaviExtensions.OpenController(controller); }
public Task <SupportImageXF> IF_OpenCamera(SyncPhotoOptions options) { ManualResetEvent manualResetEvent = new ManualResetEvent(false); SupportImageXF result = null; var currentPresent = NaviExtensions.GetTopController(); if (currentPresent == null) { return(Task.FromResult(result)); } return(Task.Factory.StartNew(() => { try { manualResetEvent.Reset(); SupportCameraController supportCameraController = null; currentPresent.InvokeOnMainThread(() => { var storyboard = UIStoryboard.FromName("SupportMediaStoryboard", null); supportCameraController = (SupportCameraController)storyboard.InstantiateViewController("SupportCameraController"); supportCameraController.syncPhotoOptions = options; supportCameraController.OnPicked += (obj) => { supportCameraController.InvokeOnMainThread(() => { try { supportCameraController.DismissViewController(true, () => { result = obj.galleryImageXF; manualResetEvent.Set(); }); } catch (Exception ex) { Console.WriteLine(ex.StackTrace); manualResetEvent.Set(); } }); }; currentPresent.PresentViewController(supportCameraController, true, null); }); manualResetEvent.WaitOne(); if (supportCameraController != null) { supportCameraController.Dispose(); } return result; } catch (Exception ex) { Console.WriteLine(ex); return result; } })); }