diff --git a/src/Essentials/src/MediaPicker/MediaPicker.ios.cs b/src/Essentials/src/MediaPicker/MediaPicker.ios.cs index ae98abcaa795..5e7ca0389f65 100644 --- a/src/Essentials/src/MediaPicker/MediaPicker.ios.cs +++ b/src/Essentials/src/MediaPicker/MediaPicker.ios.cs @@ -137,10 +137,9 @@ public async Task PhotoAsync(MediaPickerOptions options, bool photo, picker.Delegate = new PhotoPickerDelegate { - CompletedHandler = async info => + CompletedHandler = info => { GetFileResult(info, tcs, options); - await picker.DismissViewControllerAsync(true); } }; } @@ -485,17 +484,14 @@ static async Task RotateImageFile(FileResult original) class PhotoPickerDelegate : UIImagePickerControllerDelegate { public Action CompletedHandler { get; set; } - public override void FinishedPickingMedia(UIImagePickerController picker, NSDictionary info) - { - picker.DismissViewController(true, null); - CompletedHandler?.Invoke(info); - } + { + picker.DismissViewController(true, () => CompletedHandler?.Invoke(info)); + } public override void Canceled(UIImagePickerController picker) { - picker.DismissViewController(true, null); - CompletedHandler?.Invoke(null); + picker.DismissViewController(true, () => CompletedHandler?.Invoke(null)); } } } @@ -506,8 +502,8 @@ class PhotoPickerDelegate : PHPickerViewControllerDelegate public override void DidFinishPicking(PHPickerViewController picker, PHPickerResult[] results) { - picker.DismissViewController(true, null); - CompletedHandler?.Invoke(results?.Length > 0 ? results : []); + var captured = results?.Length > 0 ? results : []; + picker.DismissViewController(true, () => CompletedHandler?.Invoke(captured)); } }