Переход обратно на страницу с вкладками с использованием форм Prism Xamarin - PullRequest
0 голосов
/ 08 октября 2018

Я создаю приложение форм Xamarin с использованием библиотеки Prism.Структура страниц выглядит следующим образом:

  • MyTabbedPage: TabbedPage
  • MyFirstPage: ContentPage (это первый дочерний элемент MyTabbedPage)
  • MySecondPage: ContentPage (отдельная страница, а непотомок MyTabbedPage)

Моя цель: запуск приложения, просмотр вкладок и просмотр списка в MyFirstPage.Когда пользователь нажимает на любой элемент - MySecondPage должен отображаться, и пользователь может видеть кнопку «Назад» на панели навигации, которая возвращает его в MyFirstPage.

Ниже приведены примеры того, что я пытался сделать, и результаты, которые я получил:

1.

//when app started
_prismNavService.NavigateAsync(new System.Uri(@"/MyTabbedPage?selectedTab=MyFirstPage", UriKind.Absolute));
//when item in listview tapped
_prismNavService.NavigateAsync("MySecondPage", parameters: param);

результат : отображается вторая страница, но сверху нет навигационной панели

2.

_prismNavService.NavigateAsync(new System.Uri(@"/MyTabbedPage?selectedTab=MyFirstPage", UriKind.Absolute));

_prismNavService.NavigateAsync("NavigationPage/MySecondPage", parameters: param);

результат : вторая страница имеет панель навигации, кнопка «Назад» на устройстве возвращает пользователя в MyFirstPage, но на панели навигации нет кнопки «Назад» (стрелка влево)

3.

_prismNavService.NavigateAsync(new System.Uri(@"/MyTabbedPage?selectedTab=MyFirstPage", UriKind.Absolute));

_prismNavService.NavigateAsync("MySecondPage", param, false); //useModalNavigation : false

результат : вторая страница не отображается

4.

_prismNavService.NavigateAsync(new System.Uri(@"/MyTabbedPage?selectedTab=MyFirstPage", UriKind.Absolute));
When tapped:
_prismNavService.NavigateAsync("MySecondPage", param, true);

результат : вторая страница имеет панель навигации, кнопка возврата устройства возвращает пользователя в MyFirstPage, но на панели навигации нет кнопки возврата (стрелка влево)

5.

_prismNavService.NavigateAsync(new System.Uri(@"/NavigationPage/MyTabbedPage/MyFirstPage", UriKind.Absolute));
_prismNavService.NavigateAsync("MySecondPage", param, false); //useModalNavigation : false

результат : вторая страница имеет навигационную панель, кнопка возврата устройства выходит из приложения, и нет BACКнопка k (стрелка влево) на панели навигации

6.

_prismNavService.NavigateAsync(new System.Uri(@"/MyTabbedPage/NavigationPage/MyFirstPage", UriKind.Absolute));
_prismNavService.NavigateAsync("MySecondPage", param, false); //useModalNavigation : false

результат : вторая страница не отображается

Может ли кто-нибудь объяснить, какая структура и навигация должны быть реализованы, чтобы она работала?

...