From ad2baa9d9de0a633e8b760ed1b016edda417c15d Mon Sep 17 00:00:00 2001 From: yuriikyry4enko Date: Wed, 25 Feb 2026 22:03:05 +0100 Subject: [PATCH 1/3] Fix: invoke MediaPicker completion handler after DismissViewController --- src/Essentials/src/MediaPicker/MediaPicker.ios.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Essentials/src/MediaPicker/MediaPicker.ios.cs b/src/Essentials/src/MediaPicker/MediaPicker.ios.cs index ae98abcaa795..b8cfaecf0585 100644 --- a/src/Essentials/src/MediaPicker/MediaPicker.ios.cs +++ b/src/Essentials/src/MediaPicker/MediaPicker.ios.cs @@ -487,15 +487,13 @@ 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 +504,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)); } } From b7326fa3ab29c63749507895ec3fb29195a0b088 Mon Sep 17 00:00:00 2001 From: yuriikyry4enko Date: Thu, 26 Feb 2026 11:33:23 +0100 Subject: [PATCH 2/3] fix(ios): remove redundant dismiss and fix indentation in PhotoPickerDelegate --- src/Essentials/src/MediaPicker/MediaPicker.ios.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Essentials/src/MediaPicker/MediaPicker.ios.cs b/src/Essentials/src/MediaPicker/MediaPicker.ios.cs index b8cfaecf0585..98192779757f 100644 --- a/src/Essentials/src/MediaPicker/MediaPicker.ios.cs +++ b/src/Essentials/src/MediaPicker/MediaPicker.ios.cs @@ -140,7 +140,6 @@ public async Task PhotoAsync(MediaPickerOptions options, bool photo, CompletedHandler = async info => { GetFileResult(info, tcs, options); - await picker.DismissViewControllerAsync(true); } }; } @@ -485,10 +484,9 @@ 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, () => CompletedHandler?.Invoke(info)); + picker.DismissViewController(true, () => CompletedHandler?.Invoke(info)); } public override void Canceled(UIImagePickerController picker) From 2b3bc285c5b8e0b347710b81ed18a15cb38ca29e Mon Sep 17 00:00:00 2001 From: yuriikyry4enko Date: Thu, 26 Feb 2026 12:09:43 +0100 Subject: [PATCH 3/3] remove redundant async keyword in PhotoPickerDelegate CompletedHandler --- src/Essentials/src/MediaPicker/MediaPicker.ios.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Essentials/src/MediaPicker/MediaPicker.ios.cs b/src/Essentials/src/MediaPicker/MediaPicker.ios.cs index 98192779757f..5e7ca0389f65 100644 --- a/src/Essentials/src/MediaPicker/MediaPicker.ios.cs +++ b/src/Essentials/src/MediaPicker/MediaPicker.ios.cs @@ -137,7 +137,7 @@ public async Task PhotoAsync(MediaPickerOptions options, bool photo, picker.Delegate = new PhotoPickerDelegate { - CompletedHandler = async info => + CompletedHandler = info => { GetFileResult(info, tcs, options); }