side page modal detail alerta xamarin xamarin.forms

alerta - PushModalAsync de MasterDetailPage, formularios de Xamarin



xamarin forms side menu (1)

Creo que tienes que cambiar tu diseño.

Cuando presiona "Cerrar sesión", creo que debe ir a una página de "Inicio de sesión" (tal vez su "Página principal ()" ... No lo sé) y esta página de "Inicio de sesión" debe estar fuera de su "Panel de navegación".

Entonces, si tu escenario es

  • Página A = LoginPage
  • Página B = MasterDetailPage (Aparece después de LoginPage)

Deberías hacer algo así como thin en tu App.cs

Application.Current.MainPage = new PageA();

cuando presiona "Botón de inicio de sesión" en la página A () debe cambiar su página principal

Application.Current.MainPage = new PageB();

Utiliza la navegación solo para sus páginas de "Detalles" ... por lo tanto, cuando presiona "Cerrar sesión", no debe pulsar o Pop, pero debe cambiar su página principal.

Application.Current.MainPage = new PageA(); // Come back to Login

Estoy intentando navegar a la pantalla de inicio cuando el usuario toca "Cerrar sesión" en el menú lateral, por lo tanto, no puede tener navegación para volver a la página anterior. PushModalAsync acomoda esto, pero hacerlo desde mi MasterDetailPage no parece funcionar.

Profile.cs

public partial class Profile : MasterDetailPage { public List<MasterPageItem> menuList { get; set; } public Profile() { InitializeComponent(); this.lblMessage.Text = Settings.Name + " " + Settings.Surname; menuList = new List<MasterPageItem>(); var page1 = new MasterPageItem() { Title = "Home", Icon = "home.png", TargetType = typeof(Page1) }; var page2 = new MasterPageItem() { Title = "Cards", Icon = "card.png", TargetType = typeof(Cards) }; var page3 = new MasterPageItem() { Title = "Transactions", Icon = "settings.png", TargetType = typeof(Transactions) }; var page5 = new MasterPageItem() { Title = "Log out", Icon = "signout.png", TargetType = typeof(MainPage) }; menuList.Add(page1); menuList.Add(page2); menuList.Add(page3); menuList.Add(page5); navigationDrawerList.ItemsSource = menuList; Detail = new NavigationPage((Page)Activator.CreateInstance(typeof(Page1))); } private void OnMenuItemSelected(object sender, SelectedItemChangedEventArgs e) { var item = (MasterPageItem)e.SelectedItem; Type page = item.TargetType; Detail = new NavigationPage((Page)Activator.CreateInstance(page)); IsPresented = false; } }

Lo que he intentado: intenté asignarlo a una variable:

var goToMainPage = Navigation.PushModalAsync(new MainPage());

luego agregarlo a donde yo quiero:

var page5 = new MasterPageItem() { Title = "Log out", Icon = "signout.png", TargetType = typeof(goToMainPage) }; - Pero esto no reconoció mi variable.

¿Hay alguna forma alternativa de hacer esto? Gracias.