У меня есть приложение с экраном входа и главной страницей
Когда я инициализирую свое приложение, я устанавливаю для навигации значение «NavigationPage / LoginPage». Когда я вхожу в приложение, я сбрасываю стек с абсолютной навигацией, используя маршрут «/ NavigationPage / MainPage». Все мои страницы имеют метку, привязанную к текущему URI навигации, и когда я сбрасываю стек после входа в систему и перехожу на главную страницу, мой Uri выглядит так
/NavigationPage/LoginPage/MainPage?useModalNavigation=true
Я прочтите, что если у вас есть повторяющиеся страницы друг над другом, это может привести к тому, что навигация станет модальной по умолчанию. Но я сбрасываю стек и даже сбрасываю NavigationPage. Это не вызывает каких-либо немедленных проблем, но я обнаружил, что в более глубоких частях стека навигации моего приложения некоторая навигация не работает, и, похоже, это причина
Кто-нибудь знает, почему это происходит?
Мой код
App.xaml.cs
protected override async void OnInitialized()
{
InitializeComponent();
await NavigationService.NavigateAsync("NavigationPage/LoginPage");
}
LoginPageViewModel.cs
public ICommand LoginCommand { get; }
public LoginPageViewModel(INavigationService navigationService) : base(navigationService)
{
LoginCommand = new Command(Login);
NavUri = NavigationService.GetNavigationUriPath();
}
private async void Login()
{
await NavigationService.NavigateAsync("/NavigationPage/MainPage");
}
MainPageViewModel.cs
public MainPageViewModel(INavigationService navigationService) : base(navigationService)
{
Title = "Main Page";
NavUri = NavigationService.GetNavigationUriPath(); // current URI on the mainpage is /NavigationPage/LoginPage/MainPage?useModalNavigation=true
NavigateToPageACommand = new Command(NavigateToPageA);
}
Я использую; Xamarin Forms 4.6.0.726 Prism.Drylo c 7.2.0.1422