У меня есть MasterDetailPage, а страница сведений - это страница навигации. Я хочу, чтобы PopAsyn c когда стек подробных страниц был> 1. Когда он = 1, приложение должно спросить, хочет ли пользователь. В настоящее время он работает только тогда, когда у него есть 2 страницы в стеке (root и вторая), если у вас есть 3 страницы, он выталкивает асин c все страницы и переходит на страницу root. Также, если вы уже находитесь на странице root, она не запрашивает, просто закройте приложение.
PS: диалоговое окно подтверждения работает правильно в других частях приложения.
public async override void OnBackPressed()
{
if (Rg.Plugins.Popup.Popup.SendBackPressed(base.OnBackPressed))
await App.Current.MainPage.Navigation.PopPopupAsync();
else
{
if (App.Current.MainPage is MasterDetailPage mdp)
{
if (mdp.Detail.Navigation.NavigationStack.Count > 1)
await mdp.Detail.Navigation.PopAsync();
else
{
Alerta alerta = new Alerta();
bool opt = await alerta.ShowAlert("confirm", "App name", "Não existem páginas para retornar, você já está na página inicial.", "Continuar", "Encerrar");
if (!opt)
Finish();
}
}
else
{
Alerta alerta = new Alerta();
bool opt = await alerta.ShowAlert("confirm", "App name", "Não existem páginas para retornar, você já está na página inicial.", "Continuar", "Encerrar");
if (!opt)
Finish();
}
}
}