【问题标题】:Creating a new stack of pages after authorization授权后创建新的页面堆栈
【发布时间】:2018-11-09 09:41:30
【问题描述】:

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

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

【问题讨论】:

    标签: c# xamarin xamarin.forms


    【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      相关资源
      最近更新 更多