Я создаю приложение форм 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
результат : вторая страница не отображается
Может ли кто-нибудь объяснить, какая структура и навигация должны быть реализованы, чтобы она работала?