我使用 Xamarin Forms 和freshmvvm。我有一个登录页面,登录后我推送下一页,比如说 Page1,我想从现在开始成为 root。因此,在导航到其他几个页面后,我希望能够返回 Page1,调用 CoreMethods.PopToRoot。注销时,我想返回登录页面并清除所有导航堆栈。这是我到目前为止所尝试的:
public class NavigationStacks
{
public static string LoginNavigationStack = "LoginNavigationStack";
public static string MainAppStack = "MainAppStack";
}
public App()
{
var page = FreshPageModelResolver.ResolvePageModel<LoginPageModel>();
var basicNavContainer = new FreshNavigationContainer(page, NavigationStacks.LoginNavigationStack);
var page2 = FreshPageModelResolver.ResolvePageModel<CustomerSearchPageModel>();
var appNavContainer = new FreshNavigationContainer(page2, NavigationStacks.MainAppStack);
MainPage = basicNavContainer;
}
登录后,我调用:
CoreMethods.SwitchOutRootNavigation(NavigationStacks.MainAppStack);
await CoreMethods.PushPageModel<CustomerSearchPageModel>();
它有效。我回到第 1 页,无法返回登录页面。
注销时我打电话:
CoreMethods.SwitchOutRootNavigation(NavigationStacks.LoginNavigationStack);
但什么也没有发生。我想在清除导航堆栈的情况下导航回登录页面。我相信我想念一些东西。任何人都可以帮忙吗?提前致谢!!
克日什托夫