使用Prism导航的Xamarin.forms在以下情况下不起作用:
OnInitialized
NavigationService.NavigateAsync(nameof(LoginView));
中的App.xaml.cs await _navigationService.NavigateAsync(new Uri("MainPage", UriKind.Relative),useModalNavigation:true, animated: false);
await _navigationService.NavigateAsync(new Uri("SettingView", UriKind.Relative), useModalNavigation: true, animated: false);
SettingView(Popup)有一个Button(LogOut),一旦我单击Button(LogOut),它必须返回LoginView,这里是导航的代码。
await _navigationService.ClearPopupStackAsync(animated: false);
await _navigationService.GoBackAsync(useModalNavigation: true, animated: false);
首先我要清除弹出窗口,然后再导航,但是它不会导航回LoginView吗?
答案 0 :(得分:2)
如果您正在使用PRISM并想“清除”当前堆栈。 您最好使用显式的uri导航。 意味着注销按钮后面的代码应如下所示:
await _navigationService.NavigateAsync("/NavigationPage/LoginView");
通过在URI的开头添加/,将清除当前堆栈。
答案 1 :(得分:1)
在用户确认退出后,您应该使用绝对uri将Loginpage设置为Mainpage
await NavigationService.NavigateAsync(new System.Uri("/LoginPage",System.UriKind.Absolute));