在 Xamarin Forms 的 Prism 7 中,有没有办法在 OnNavigatedTo 处理程序中获取先前的页面

In Prism 7 for Xamarin Forms, is there a way to get prior page in OnNavigatedTo handler

在 Xamarin Forms 中使用 Prism 的新功能:INavigationAware 为我提供了 OnNavigatedTo 处理程序。我想要这种形式的不同行为,具体取决于我们从哪里导航。有没有办法获取上一页?

具体来说,如果某个条件为真,我的页面 A 会打开页面 B(模态)。但是,如果从页面 B 按下后退按钮,返回到页面 A,我不想再次打开页面 B。相反,我想返回到导航堆栈中页面 A 下方的上一页。

好吧,传递页面会直接违反 MVVM 设计,因为您的 ViewModel 不应该直接了解关联的视图。也就是说,所有 INavigationAware 方法都使用 NavigationParameters,这意味着您可以传递一些您可以检查的值,类似于以下内容:

NavigationService.NavigateAsync("ModalA", new NavigationParameters {{"reason", "foo"}});

public void OnNavigatedTo(INavigationParameters navigationParameters)
{
    switch(navigationParameters.GetValue<string>("reason"))
    {
        case "foo":
            // Do Foo
            break;
        case "bar":
            // Do Bar
            break;
    }
}