如何使用Prism从Master Detail到没有Master Detail的内容页面导航Xamarin Forms

时间:2017-09-19 21:44:21

标签: xamarin navigation master-detail prism-4

我正在使用Xamarin Forms with Prism。如何从MasterDetail.Master导航到不属于MasterDetail的ContentPage(也就是说,我不想更新细节并继续成为Master / Detail关系的一部分)?当您单击汉堡菜单中的设置时,用例就像Gmail应用程序。它将您带出Master / Detail,您现在位于NavigationPage / ContentPage中,并带有后退按钮以返回MasterDetail页面。

如果您没有使用Prism,可以转到详细信息页面并从那里执行Navigation.PushAsync:

var mdp = Application.Current.MainPage as MasterDetailPage;
mdp.IsPresented = false;
await mdp.Detail.Navigation.PushAsync(new ContentPage2());

但我不知道如何使用棱镜导航来做到这一点。

-Steve

1 个答案:

答案 0 :(得分:1)

假设您的Application.Current.MainPageMasterDetailPageDetail中的当前MasterDetailPageNavigationPage(new ContentPage1())

ContentPage1中,您有2个选项可导航至ContentPage2

选项1:在当前导航堆栈中显示ContentPage2

您将ContentPage2推送到ContentPage1的同一导航堆栈中。导航栏中的后退按钮将自动添加。

// Call this code in ContentPage1
_navigationService.PushAsync("ContentPage2");

选项2:以模态方式显示ContentPage2

您将以模态方式呈现页面并在全新的导航堆栈中。您需要在NavigationBar中添加Back按钮并使用您自己的代码处理click事件。

// Call this code in ContentPage1
_navigationService.PushAsync("NavigationPage/ContentPage2", null, true);