我终于找到了(因为PushAsync()在全球范围内不起作用)如何像这样从MasterDetailPage导航到下一页:
Application.Current.MainPage = new NavigationPage(new Screen_Profile());
这将打开一个新页面,但是我无法返回上一页,但这将重置导航堆栈。
如何导航但仍可以选择返回MasterDetail页面导航?
答案 0 :(得分:0)
您可以尝试使用
Navigation.PushAsync(new Screen_Profile());
尝试阅读更多有关此链接的信息 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/hierarchical
答案 1 :(得分:0)
Here is the reference about the navigation with 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();
}
}
您应该使用这种模式进行导航。