В настоящее время 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;
}
}