如何在不使用导航的情况下在Xamarin应用程序中打开页面?

时间:2018-07-31 08:52:26

标签: c# .net forms xamarin core

我有一个Xamarin Forms应用程序,该应用程序在工具栏上有2个按钮。目前,我正在使用FreshMVVM(及其导航)。我想加载页面而不将其放入导航。我不想在工具栏上使用“后退”按钮,也不想用户返回上一页。

这是我当前推送页面的方式:

CoreMethods.PushPageModel<FirstChoicePageModel>();

我试图以模式方式进行推送,但是那样的话,直到我按下后,工具栏按钮才起作用。如果我按下按钮,是否应该制作新的导航容器并切换到它们?

2 个答案:

答案 0 :(得分:1)

自从我使用FreshMVVM已经有一段时间了,但是如果我没记错的话,有两种选择:

  1. 如果要完全重置导航堆栈,可以执行CoreMethods.PushPageModelWithNewNavigation<FirstChoicePageModel>();
  2. 如果要保留导航堆栈,可以在视图后面的代码中设置NavigationPage.SetHasBackButton(this, false);

对于这两个选项,可能都需要拦截Android上的后退按钮。在后面的代码中,有一个可重写的方法:

protected override bool OnBackButtonPressed()
{
    return true; // prevent Xamarin.Forms from processing back button
}

答案 1 :(得分:1)

如果要显示页面,但又不想导航(更改当前页面),则始终可以使用弹出窗口。

查看此链接https://github.com/rotorgames/Rg.Plugins.Popup