2017-01-28 3 views
0

Я работаю над проектом XF с помощью призмы. У меня есть страница входа в систему, которая по успеху переходит на страницу подробного описания.Нажатие кнопки «Назад» (аппаратное обеспечение) из мастер-страницы Page

<Button Style="{StaticResource MenuButtonStyle}" Text="Title1" Command="{Binding NavigateCommand}" CommandParameter="DetailNavigationPage/Page1" Grid.Row="3" Grid.Column="0"></Button> 

У меня есть 4 кнопки на главной странице, которые я использую для навигации, как показано в приведенном выше коде.

Это прекрасно работает, в том смысле, что я могу перейти к моим подробным страницам и использовать значок гамбургера, чтобы снова просмотреть главную страницу.

Однако, когда я нажимаю кнопку «Назад» (аппаратное обеспечение), меня отбрасывают на страницу входа, а не на главную страницу. Могу ли я что-нибудь сделать, чтобы показать свою главную страницу, когда я нажимаю кнопку «Назад»?

Благодаря

+0

Вы можете удалить страницу входа из стека навигации? – Cheesebaron

+0

Не могли бы вы рассказать мне, как я могу это сделать? –

+0

Используйте статический класс Navigation и вызовите RemovePage со страницей, которую вы хотите удалить. – Cheesebaron

ответ

1

Если вы хотите, чтобы предотвратить навигации обратно к LoginPage, самое лучшее, что нужно сделать, это удалить его из навигации стека. Если навигационный вызов на успешной регистрации является:

_navigationService.NavigateAsync("MainPage"); 

Навигационная стек на самом деле выглядит следующим образом: LoginPage/MainPage. Хотя ваше приложение не может обеспечить способ навигации по назад, так как вы обнаружили, что кнопка «Назад» оборудования может выполнить задачу. Если с другой стороны, вы меняете навигационный вызов выглядеть следующим образом:

_navigationService.NavigateAsync("/MainPage"); 

Это сделает «MainPage» корневая страница вашего приложения.

+0

Спасибо Dan. Это похоже на решение, которое я искал. Однако, когда я нажимаю обратно, вместо отображаемой главной страницы приложение становится сведено к минимуму. Как будто, мастер-страница никогда не существует в стеке, несмотря на вход в систему для перехода к Учителю, как вы уже упоминали. Это ожидаемое поведение? –

+1

Да, это ожидаемое поведение. Как я помню как для Windows, так и для Android, нажатие кнопки возврата оборудования эффективно сводит к минимуму ваше приложение, если оно нажато на корневой странице. –

+0

Спасибо Dan. Есть ли какая-то конкретная причина, по которой Мастер-страница никогда не попадает в стек? –

Смежные вопросы