如何导航离开MasterDetailPage,但不重置导航堆栈



我终于找到了(因为PushAsync((不能全局工作(如何从MasterDetailPage导航到下一页,如下所示:

Application.Current.MainPage = new NavigationPage(new Screen_Profile());

这会打开一个新页面,但我无法返回到上一页,但这是在重置导航堆栈。

如何导航离开,但仍然可以选择返回MasterDetail页面导航?

您可以尝试使用

Navigation.PushAsync(new Screen_Profile());

尝试阅读此链接上的更多内容https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/hierarchical

以下是有关masterDetailpage 导航的参考资料

在你的App.cs中,你会有类似于这段代码的东西(如果它没有编译,很抱歉,我是在编这个代码(。

public static NavigationPage NavPage = null;
public App()
{
var _navPage = new NavigationPage(new PageOne());
var _masterPage = new MasterDetailpage();
_masterPage.Detail = NavPage;
_masterPage.Master = (your master / menu page);
MainPage = _masterPage;
}

然后在你的代码中你可以参考

await App.NavPage.PushAsync(new PageTwo());

这能让你发挥作用。但是,您不希望以这种方式访问NavigationPage。您可以使用DependencyInjection创建NavigationService。

类似的东西

public class NavigationService: INavigationService
{
public NavigationService(NavigationPage navPage)
{
// Keep local copy of navPage
}
public async Task NavigateTo(Page page)
{
await _navPage.PushAsync(page);
}
public async Task GoBack()
{
await _navPage.PopAsync();
}
}

您应该像这样使用Pattern进行导航。

最新更新