From 47802aa7e53ade4ef1a3f5b77b381aafa446cb4a Mon Sep 17 00:00:00 2001 From: Shane Neuville Date: Wed, 8 Feb 2023 22:45:25 -0600 Subject: [PATCH] Fix back button tap for older iOS APIs (#13204) * Fix back button tap for older iOS APIs * - fix ios14 --- .../src/DeviceTests/AssertionExtensions.iOS.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/TestUtils/src/DeviceTests/AssertionExtensions.iOS.cs b/src/TestUtils/src/DeviceTests/AssertionExtensions.iOS.cs index 0b99c9f720e9..bc4f04d5fa03 100644 --- a/src/TestUtils/src/DeviceTests/AssertionExtensions.iOS.cs +++ b/src/TestUtils/src/DeviceTests/AssertionExtensions.iOS.cs @@ -575,10 +575,16 @@ public static void TapBackButton(this UINavigationBar uINavigationBar) { var item = uINavigationBar.GetBackButton(); - var recognizer = item!.GestureRecognizers!.OfType().FirstOrDefault(); - _ = recognizer ?? throw new Exception("Unable to Back Button TapGestureRecognizer"); - - recognizer.State = UIGestureRecognizerState.Ended; + var recognizer = item?.GestureRecognizers?.OfType()?.FirstOrDefault(); + if (recognizer is null && item is UIControl control) + { + control.SendActionForControlEvents(UIControlEvent.TouchUpInside); + } + else + { + _ = recognizer ?? throw new Exception("Unable to figure out how to tap back button"); + recognizer.State = UIGestureRecognizerState.Ended; + } } public static string? GetToolbarTitle(this UINavigationBar uINavigationBar)