FreshMvvm PushNewNavigationServiceModal无效

时间:2017-06-17 16:51:53

标签: xamarin mvvm navigation freshmvvm

当用户使用freshMvvm方法FreshNavigationContainer在方法FreshMasterDetailNavigationContainer内登录时,我尝试从SuccessfulLogin更改为PushNewNavigationServiceModal但没有任何事情发生。

    public void SuccessfulLogin()
    {
        App.IsLoggedIn = true;
        var masterDetailNav = new FreshMasterDetailNavigationContainer();
        masterDetailNav.Init("Menu");
        masterDetailNav.AddPage<ProfilePageModel>("Profile", null);
        CoreMethods.PushNewNavigationServiceModal(masterDetailNav);
    }

修改: 我刚刚注意到使用此方法后,导航不再有效。

1 个答案:

答案 0 :(得分:0)

您需要使用 CoreMethods.SwitchOutRootNavigation

首先设置您的NavigationStacks

public class NavigationStacks
{
    public static string LoginNavigationStack = "LoginNavigationStack";
    public static string MainAppStack = "MainAppStack";
}

在App.xaml.cs中定义导航

FreshNavigationContainer loginMain;
FreshMasterDetailNavigationContainer masterDetailNav;

var loginPage = FreshPageModelResolver.ResolvePageModel<UserLoginPageModel>();
loginMain = new FreshNavigationContainer(loginPage, NavigationStacks.LoginNavigationStack);

var masterDetailNav = new FreshMasterDetailNavigationContainer(NavigationStacks.MainAppStack);
masterDetailNav.Init("Menu");
masterDetailNav.AddPage<ProfilePageModel>("Profile", null);

然后在您的Login ViewModel

public void SuccessfulLogin()
{
    App.IsLoggedIn = true;
    CoreMethods.SwitchOutRootNavigation(NavigationStacks.MainAppStack);
}