From dac2000bf63dd03ab6b28b6a5332af644c120059 Mon Sep 17 00:00:00 2001 From: devanathan-vaithiyanathan <114395405+devanathan-vaithiyanathan@users.noreply.github.com> Date: Thu, 11 Sep 2025 18:37:32 +0530 Subject: [PATCH 1/4] Update NavigationRenderer.cs --- .../Handlers/NavigationPage/iOS/NavigationRenderer.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Controls/src/Core/Compatibility/Handlers/NavigationPage/iOS/NavigationRenderer.cs b/src/Controls/src/Core/Compatibility/Handlers/NavigationPage/iOS/NavigationRenderer.cs index b84444975463..4191587c5387 100644 --- a/src/Controls/src/Core/Compatibility/Handlers/NavigationPage/iOS/NavigationRenderer.cs +++ b/src/Controls/src/Core/Compatibility/Handlers/NavigationPage/iOS/NavigationRenderer.cs @@ -1422,6 +1422,8 @@ void HandleChildPropertyChanged(object sender, PropertyChangedEventArgs e) else if (e.PropertyName == NavigationPage.TitleIconImageSourceProperty.PropertyName || e.PropertyName == NavigationPage.TitleViewProperty.PropertyName) UpdateTitleArea(Child); + else if (e.PropertyName == NavigationPage.BackButtonTitleProperty.PropertyName) + UpdateBackButtonTitle(Child); else if (e.PropertyName == NavigationPage.IconColorProperty.PropertyName) UpdateIconColor(); } From 3810f3baaf33deab7b00cda7113d816d949620cc Mon Sep 17 00:00:00 2001 From: devanathan-vaithiyanathan <114395405+devanathan-vaithiyanathan@users.noreply.github.com> Date: Thu, 11 Sep 2025 20:06:32 +0530 Subject: [PATCH 2/4] test case added --- .../TestCases.HostApp/Issues/Issue31539.cs | 70 +++++++++++++++++++ .../Tests/Issues/Issue31539.cs | 25 +++++++ 2 files changed, 95 insertions(+) create mode 100644 src/Controls/tests/TestCases.HostApp/Issues/Issue31539.cs create mode 100644 src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31539.cs diff --git a/src/Controls/tests/TestCases.HostApp/Issues/Issue31539.cs b/src/Controls/tests/TestCases.HostApp/Issues/Issue31539.cs new file mode 100644 index 000000000000..e71984344b10 --- /dev/null +++ b/src/Controls/tests/TestCases.HostApp/Issues/Issue31539.cs @@ -0,0 +1,70 @@ +using System.Collections.ObjectModel; + +namespace Maui.Controls.Sample.Issues; + +[Issue(IssueTracker.Github, 31539, "[iOS, macOS] Navigation Page BackButtonTitle Not Updating", PlatformAffected.iOS | PlatformAffected.macOS)] + +public class Issue31539 : TestNavigationPage +{ + protected override void Init() + { + Navigation.PushAsync(new Issue31539ContentPage()); + } +} + +public class Issue31539ContentPage : ContentPage +{ + public Issue31539ContentPage() + { + var layout = new VerticalStackLayout + { + Padding = 20, + Spacing = 12 + }; + + var pushButton = new Button + { + Text = "Push Second Page", + AutomationId = "PushSecondPage" + }; + pushButton.Clicked += OnPushSecondPage; + + var backTitleButton = new Button + { + Text = "Set BackButtonTitle = 'Back Home'", + AutomationId = "SetBackButtonTitle" + }; + backTitleButton.Clicked += OnSetBackButtonTitle; + + layout.Children.Add(pushButton); + layout.Children.Add(backTitleButton); + + Content = layout; + } + + void OnPushSecondPage(object sender, EventArgs e) + { + Navigation.PushAsync(new Issue31539SecondContentPage()); + } + + void OnSetBackButtonTitle(object sender, EventArgs e) + { + NavigationPage.SetBackButtonTitle(this, "Back Home"); + } +} + +public class Issue31539SecondContentPage : ContentPage +{ + public Issue31539SecondContentPage() + { + Content = new StackLayout + { + Padding = 20, + Spacing = 12, + Children = + { + new Label { Text = "This is the second page.", AutomationId = "SecondPageLabel" } + } + }; + } +} \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31539.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31539.cs new file mode 100644 index 000000000000..ce9b7a3aa2ac --- /dev/null +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31539.cs @@ -0,0 +1,25 @@ +using NUnit.Framework; +using UITest.Appium; +using UITest.Core; + +namespace Microsoft.Maui.TestCases.Tests.Issues +{ + public class Issue31539 : _IssuesUITest + { + public Issue31539(TestDevice device) : base(device) { } + + public override string Issue => "[iOS, macOS] Navigation Page BackButtonTitle Not Updating"; + [Test] + [Category(UITestCategories.Navigation)] + public void VerifyBackButtonTitleUpdates() + { + App.WaitForElement("PushSecondPage"); + App.Tap("PushSecondPage"); + App.TapBackArrow(); + App.Tap("SetBackButtonTitle"); + App.Tap("PushSecondPage"); + App.WaitForElement("SecondPageLabel"); + VerifyScreenshot(); + } + } +} \ No newline at end of file From 1fe82587f916c9877439cac907e05363386c3bc3 Mon Sep 17 00:00:00 2001 From: devanathan-vaithiyanathan <114395405+devanathan-vaithiyanathan@users.noreply.github.com> Date: Thu, 11 Sep 2025 20:12:11 +0530 Subject: [PATCH 3/4] Update Issue31539.cs --- .../tests/TestCases.Shared.Tests/Tests/Issues/Issue31539.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31539.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31539.cs index ce9b7a3aa2ac..633a798b1ba9 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31539.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31539.cs @@ -1,3 +1,4 @@ +# if TEST_FAILS_ON_ANDROID && TEST_FAILS_ON_WINDOWS // BackButtonTitle is only applicable for iOS and macOS using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -22,4 +23,5 @@ public void VerifyBackButtonTitleUpdates() VerifyScreenshot(); } } -} \ No newline at end of file +} +#endif \ No newline at end of file From bdc3d18fa77737ce4809f664fcfef1cb7c75693b Mon Sep 17 00:00:00 2001 From: devanathan-vaithiyanathan <114395405+devanathan-vaithiyanathan@users.noreply.github.com> Date: Mon, 15 Sep 2025 11:11:51 +0530 Subject: [PATCH 4/4] snapshot added --- .../mac/VerifyBackButtonTitleUpdates.png | Bin 0 -> 9840 bytes .../ios/VerifyBackButtonTitleUpdates.png | Bin 0 -> 25789 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/VerifyBackButtonTitleUpdates.png create mode 100644 src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyBackButtonTitleUpdates.png diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/VerifyBackButtonTitleUpdates.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/VerifyBackButtonTitleUpdates.png new file mode 100644 index 0000000000000000000000000000000000000000..80f4d69acdc3de63addb185e960d681ec69d83b2 GIT binary patch literal 9840 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