From bd98eef7b75676ba84ac13f0aafc1cc6950033ac Mon Sep 17 00:00:00 2001 From: Jakub Florkowski Date: Wed, 14 Feb 2024 12:18:49 +0100 Subject: [PATCH 1/4] [iOS] Shell page title fix (#20199) --- .../Handlers/Shell/iOS/ShellSectionRootRenderer.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRootRenderer.cs b/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRootRenderer.cs index 8468cf0f16d6..00d2b7124337 100644 --- a/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRootRenderer.cs +++ b/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRootRenderer.cs @@ -113,9 +113,12 @@ public override void ViewDidLoad() tracker.IsRootPage = true; tracker.ViewController = this; + _tracker = tracker; if (ShellSection.CurrentItem != null) + { tracker.Page = ((IShellContentController)ShellSection.CurrentItem).GetOrCreateContent(); - _tracker = tracker; + NavigationItem.Title = _shellContext.Shell.Toolbar.Title; + } UpdateFlowDirection(); } From b39a764f99feddbc7fe23ba6a5f8781776362daf Mon Sep 17 00:00:00 2001 From: Jakub Florkowski Date: Wed, 14 Feb 2024 12:19:23 +0100 Subject: [PATCH 2/4] Added a UiTest (#20199) --- .../Issues/Issue20199.xaml | 13 +++++++++ .../Issues/Issue20199.xaml.cs | 29 +++++++++++++++++++ .../tests/UITests/Tests/Issues/Issue20199.cs | 27 +++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 src/Controls/samples/Controls.Sample.UITests/Issues/Issue20199.xaml create mode 100644 src/Controls/samples/Controls.Sample.UITests/Issues/Issue20199.xaml.cs create mode 100644 src/Controls/tests/UITests/Tests/Issues/Issue20199.cs diff --git a/src/Controls/samples/Controls.Sample.UITests/Issues/Issue20199.xaml b/src/Controls/samples/Controls.Sample.UITests/Issues/Issue20199.xaml new file mode 100644 index 000000000000..aac6bcca0c2a --- /dev/null +++ b/src/Controls/samples/Controls.Sample.UITests/Issues/Issue20199.xaml @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/src/Controls/samples/Controls.Sample.UITests/Issues/Issue20199.xaml.cs b/src/Controls/samples/Controls.Sample.UITests/Issues/Issue20199.xaml.cs new file mode 100644 index 000000000000..260cd69e0ec6 --- /dev/null +++ b/src/Controls/samples/Controls.Sample.UITests/Issues/Issue20199.xaml.cs @@ -0,0 +1,29 @@ +using Microsoft.Maui.Controls; +using Microsoft.Maui.Controls.Xaml; + +namespace Maui.Controls.Sample.Issues +{ + [XamlCompilation(XamlCompilationOptions.Compile)] + [Issue(IssueTracker.Github, 20199, "[iOS] Page titles do not appear until navigating when pushing a modal page at startup", PlatformAffected.iOS)] + public partial class Issue20199 : Shell + { + public Issue20199() + { + InitializeComponent(); + } + + protected override async void OnAppearing() + { + base.OnAppearing(); + + var closeModalPageButton = new Button() { Text = "Hide", AutomationId = "button" }; + closeModalPageButton.Clicked += (s, e) => Navigation.PopAsync(); + + var modalPage = new ContentPage() { Content = closeModalPageButton }; + + await Navigation.PushModalAsync(modalPage); + } + } + + public class Issue20199Page : ContentPage { } +} \ No newline at end of file diff --git a/src/Controls/tests/UITests/Tests/Issues/Issue20199.cs b/src/Controls/tests/UITests/Tests/Issues/Issue20199.cs new file mode 100644 index 000000000000..3599b45bb34e --- /dev/null +++ b/src/Controls/tests/UITests/Tests/Issues/Issue20199.cs @@ -0,0 +1,27 @@ +using NUnit.Framework; +using UITest.Appium; +using UITest.Core; + +namespace Microsoft.Maui.AppiumTests.Issues +{ + public class Issue20199 : _IssuesUITest + { + public override string Issue => "[iOS] Page titles do not appear until navigating when pushing a modal page at startup"; + + public Issue20199(TestDevice device) : base(device) + { + } + + [Test] + public void TitleViewShouldBeVisible() + { + this.IgnoreIfPlatforms(new TestDevice[] { TestDevice.Android, TestDevice.Mac, TestDevice.Windows }); + + _ = App.WaitForElement("button"); + App.Click("button"); + + // The test passes if the 'Home Page' title is visible + VerifyScreenshot(); + } + } +} From 62aa17f782cbbf9b1f9fb5797fe6b906b87324fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez?= Date: Tue, 16 Apr 2024 13:44:50 +0200 Subject: [PATCH 3/4] Added pending snapshot --- .../snapshots/ios/TitleViewShouldBeVisible.png | Bin 0 -> 11058 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/Controls/tests/UITests/snapshots/ios/TitleViewShouldBeVisible.png diff --git a/src/Controls/tests/UITests/snapshots/ios/TitleViewShouldBeVisible.png b/src/Controls/tests/UITests/snapshots/ios/TitleViewShouldBeVisible.png new file mode 100644 index 0000000000000000000000000000000000000000..8dd518b8c84af312f7998cabb66fa3d7362d2944 GIT binary patch literal 11058 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 Date: Tue, 30 Apr 2024 13:16:15 +0200 Subject: [PATCH 4/4] Shell page title fix --- .../Handlers/Shell/iOS/ShellSectionRootRenderer.cs | 5 +---- src/Controls/src/Core/Shell/ShellSection.cs | 7 +++++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRootRenderer.cs b/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRootRenderer.cs index 00d2b7124337..8468cf0f16d6 100644 --- a/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRootRenderer.cs +++ b/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRootRenderer.cs @@ -113,12 +113,9 @@ public override void ViewDidLoad() tracker.IsRootPage = true; tracker.ViewController = this; - _tracker = tracker; if (ShellSection.CurrentItem != null) - { tracker.Page = ((IShellContentController)ShellSection.CurrentItem).GetOrCreateContent(); - NavigationItem.Title = _shellContext.Shell.Toolbar.Title; - } + _tracker = tracker; UpdateFlowDirection(); } diff --git a/src/Controls/src/Core/Shell/ShellSection.cs b/src/Controls/src/Core/Shell/ShellSection.cs index b88e977c22f4..9778bc5acebd 100644 --- a/src/Controls/src/Core/Shell/ShellSection.cs +++ b/src/Controls/src/Core/Shell/ShellSection.cs @@ -648,8 +648,11 @@ internal void UpdateDisplayedPage() if (previousPage != DisplayedPage) { previousPage?.SendDisappearing(); - PresentedPageAppearing(); - SendAppearanceChanged(); + if (!Navigation.ModalStack.Any()) + { + PresentedPageAppearing(); + SendAppearanceChanged(); + } } }