我需要在身份验证后创建新的页面堆栈。在大多数应用程序中,授权表只是该应用程序的启动器。 如果我使用Navigation.PushAsync(Page),则按一下后退按钮可以返回授权表单。我不需要这个 MasterDetail页面已创建,并且后退按钮应关闭应用程序。 如何实现此功能?
public async void OnAuthorization(object sender, EventArgs a)
{
await Navigation.PushAsync(new ProfilePage());
}
答案 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();