我正在使用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
答案 0 :(得分:1)
假设您的Application.Current.MainPage
是MasterDetailPage
。 Detail
中的当前MasterDetailPage
为NavigationPage(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);