授权后创建新的页面堆栈

时间:2018-11-09 09:41:30

标签: c# xamarin xamarin.forms

我需要在身份验证后创建新的页面堆栈。在大多数应用程序中,授权表只是该应用程序的启动器。 如果我使用Navigation.PushAsync(Page),则按一下后退按钮可以返回授权表单。我不需要这个 MasterDetail页面已创建,并且后退按钮应关闭应用程序。 如何实现此功能?

public async void OnAuthorization(object sender, EventArgs a)
    {
        await Navigation.PushAsync(new ProfilePage());
    }

1 个答案:

答案 0 :(得分:1)

假设“身份验证页面”没有包装在NavigationPage中,并且ProfilePage是您的MasterDetailPage,则只需将MainPage替换为ProfilePage。

public async void OnAuthorization(object sender, EventArgs a)
{
    Application.Current.MainPage = new ProfilePage();
}

如果将所有内容包装在NavigationPage中(不知道为什么会这样,应该只在MasterDetailPage.Detail内),则可以将MasterDetailPage插入堆栈中(在当前页面之前),然后从堆栈中弹出当前页面。但是根据您的问题暗示的是零堆栈(返回退出按钮),您将弹出至根目录:

Navigation.InsertPageBefore(new SomeMasterDetailPage(), this);
await Navigation.PopToRootAsync();