У меня есть приложение для iOS, написанное на Xamarin.Forms, которое использует Prism NavigationService для навигации. Когда пользователь нажимает кнопку «Выход», навигация возвращается к экрану входа. После повторного выполнения этого действия заголовок появляется снова.
Я подавляю заголовок NavigationPage на каждом экране с кодом
NavigationPage.SetHasNavigationBar(this, false);
Это работает изначально. Тем не менее он перестает работать после нескольких нажатий стека навигации.
На странице входа, где это происходит, я также попытался добавить следующее в XAML с тем же результатом.
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:BIMSMobile.ViewModels"
NavigationPage.HasNavigationBar="False"
x:Class="BIMSMobile.Views.LoginPage">
<ContentPage.Content>
...
Я подавляю заголовок NavigationPage в пользу пользовательского представления, имеющего кнопку «Выход». Кнопка выхода имеет следующий обработчик:
protected void OnLogoutClicked(object sender, EventArgs e)
{
SessionHelper.Instance.SignOutUser();
}
В SessionHelper я делаю следующее:
await NavigationService.NavigateAsync("NavigationPage/LoginPage");
Синий заголовок подавляется при открытии приложения и поддерживается для первогонесколько назад навигации (поп). Я ожидаю, что это всегда будет так. Однако после второго выхода из системы снова появляется заголовок по умолчанию, а остальную часть содержимого выводите на экран.