Xamarin Forms - призма обнаруживает GoBack - PullRequest
1 голос
/ 09 марта 2020

Использование Xamarin.Forms v4.5 и Prism v7.2

У меня есть приложение с 3 страницами (PageA, PageB и Page C).

Из PageA я могу перейдите к странице B и от страницы B к странице C. Со страницы C я могу нажать на кнопку «Назад» и go вернуться на страницу B.

У меня вопрос, когда я перехожу к странице B (либо из страницы A, либо из страницы C), есть ли метод, который предоставляет Призма, чтобы определить, заканчиваю ли я до PageB нажатием кнопки назад?

1 Ответ

1 голос
/ 09 марта 2020

В настоящее время Xamarin.Forms не предоставляет способ подключиться к базовой службе навигации и перехватывать весь процесс навигации в определенных потоках, например, когда кто-то нажимает на кнопку возврата оборудования. В результате мы ограничены в том, что мы можем сделать, и поэтому не можем поддерживать IConfirmNavigation, чтобы позволить вам предотвратить переход.

При этом мы можем заметить, что страница всплыла, и мы все еще в состоянии вызвать OnNavigatedFrom / OnNavigatedTo. Вы можете легко определить, что произошло, получив NavigationMode. Для этого ваш код может выглядеть так:

public void OnNavigatedTo(INavigationParameters parameters)
{
    var mode = parameters.GetNavigationMode();
    switch(mode)
    {
        case NavigationMode.New:
            break;
        case NavigationMode.Back:
            break;
        case NavigationMode.Forward:
            break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...