Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ internal static class ToolbarExtensions
public static void UpdateIsVisible(this MauiToolbar platformToolbar, Toolbar toolbar)
{
platformToolbar.Visibility = (toolbar.IsVisible) ? UI.Xaml.Visibility.Visible : UI.Xaml.Visibility.Collapsed;
UpdateBackButtonVisibility(platformToolbar, toolbar);
}

public static void UpdateTitleIcon(this MauiToolbar platformToolbar, Toolbar toolbar)
Expand All @@ -35,8 +36,7 @@ public static void UpdateBackButton(this MauiToolbar platformToolbar, Toolbar to
platformToolbar.IsBackEnabled =
toolbar.BackButtonEnabled && toolbar.BackButtonVisible;

platformToolbar
.IsBackButtonVisible = (toolbar.BackButtonVisible) ? NavigationViewBackButtonVisible.Visible : NavigationViewBackButtonVisible.Collapsed;
UpdateBackButtonVisibility(platformToolbar, toolbar);

toolbar.Handler?.UpdateValue(nameof(Toolbar.BarBackground));
}
Expand Down Expand Up @@ -84,5 +84,13 @@ public static void UpdateToolbarDynamicOverflowEnabled(this MauiToolbar platform

platformToolbar.CommandBar.IsDynamicOverflowEnabled = toolbar.DynamicOverflowEnabled;
}

private static void UpdateBackButtonVisibility(MauiToolbar platformToolbar, Toolbar toolbar)
{
platformToolbar.IsBackButtonVisible =
toolbar.BackButtonVisible
? NavigationViewBackButtonVisible.Visible
: NavigationViewBackButtonVisible.Collapsed;
}
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions src/Controls/tests/TestCases.HostApp/Issues/Issue14689.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
namespace Maui.Controls.Sample.Issues;

[Issue(IssueTracker.Github, 14689, "TabbedPage Back button not updated", PlatformAffected.UWP, NavigationBehavior.SetApplicationRoot)]
public class Issue14689 : TabbedPage
{
public Issue14689()
{
Children.Add(new ContentPage() { Title = "NoNavigationPage" });
Children.Add(new NavigationPage(new Issue14689Page()) { Title = "HasNavigationPage" });
Children.Add(new NavigationPage(new Issue14689Page()) { Title = "HasNavigationPage1" });
}
}

public class Issue14689Page : ContentPage
{
public Issue14689Page()
{
var button = new Button() { Text = "Push a page", VerticalOptions = LayoutOptions.Start, AutomationId = "button" };
button.Clicked += (s, e) => { this.Navigation.PushAsync(new Issue14689Page()); };
Content = button;
}
}

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using NUnit.Framework;
using UITest.Appium;
using UITest.Core;

namespace Microsoft.Maui.TestCases.Tests.Issues;

public class Issue14689 : _IssuesUITest
{
public Issue14689(TestDevice testDevice) : base(testDevice)
{
}
public override string Issue => "TabbedPage Back button not updated";

[Test]
[Category(UITestCategories.TabbedPage)]
public void TabbedPageBackButtonUpdated()
{
App.TapTab("HasNavigationPage");
App.WaitForElement("button");
App.Tap("button");
App.TapTab("NoNavigationPage");
#if WINDOWS
VerifyScreenshot(includeTitleBar: true); // On Windows, the back button is visible in the title bar
#else
VerifyScreenshot();
#endif
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading