Как перейти от MasterDetailPage, но не сбросить стек навигации - PullRequest
0 голосов
/ 25 апреля 2020

Я наконец-то узнал (поскольку PushAsyn c () не работает глобально), как перейти к следующей странице из MasterDetailPage, например:

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

Это открывает новую страницу, но тогда я не могу go вернуться на предыдущую страницу, но это приводит к сбросу стека навигации.

Как я могу уйти, но все еще могу вернуться к навигации по странице MasterDetail?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Вот ссылка о навигации с 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();

      }

}

Вы должны использовать этот шаблон для навигации.

0 голосов
/ 25 апреля 2020

вы можете попробовать использовать

 Navigation.PushAsync(new Screen_Profile());

попробуйте прочитать больше по этой ссылке https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/hierarchical

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...