Formulaires Xamarin-se débarrasser du bouton arrière dans la barre de navigation

disons que la première page de l'application est la page de connexion et ensuite il me faut faire l'écran du menu principal, y a-t-il un moyen de se débarrasser du bouton de retour dans la barre de navigation du menu principal, comme se débarrasser de la pile de page de connexion?

merci

21
demandé sur user3841879 2014-07-24 18:03:26

4 réponses

En Xamarin.Formulaires 1.3 et plus vous pouvez utiliser

NavigationPage.SetHasBackButton(this, false);

Xaml vous pouvez ajouter:

<ContentPage ....NameSpaces etc....
    NavigationPage.HasBackButton="False"
    Title="MyPage">
</ContentPage>
47
répondu user1 2016-03-11 16:25:07

Vous pouvez éviter d'avoir le bouton de Retour si vous remplacez Navigation.PushAsync(page)Navigation.PushModalAsync(page) dans le code de votre page de connexion. Poster du code, si ce en quelque sorte ne s'applique pas

cela a à voir avec la façon dont la navigation fonctionne dans L'OS sous - jacent (au moins dans iOS qui est le cas) - il ya un contrôleur de Navigation qui sert pour les pages de transition entre les uns et les autres et ont une trace de l'écran précédent de sorte que l'utilisateur peut revenir en arrière.

10
répondu Sten Petrov 2014-07-24 14:25:53

Il y a 2 façons de se débarrasser d'un bouton de retour:

1) vous pouvez supprimer la barre de navigation de Xaml en utilisant Xamarin.Formulaires utilisant le code ci-dessous

NavigationPage.SetHasNavigationBar (this, false);

this signifie "page / forme actuelle".

2) Suivre les étapes mentionnées ci-dessous

  • naviguez vers la page de connexion lorsque l'application est chargée avec Normal ContentPage instance de la page de connexion
  • naviguez vers la page principale à partir de la page de connexion en utilisant PushModalAsync et fournir la page principale exemple NavigationPage
  • et puis de toutes les autres pages, vous pouvez utiliser PushAsync et il vous permettra de naviguer à toutes les pages sans aucune erreur.

Espérons que cette aide!

4
répondu Nirav Mehta 2017-04-14 16:05:16

en utilisant CustomRenderer, vous appelez cette fonction dans ViewWillAppear dans votre contrôleur de vue personnalisé

public override void ViewWillAppear (bool animated)
{
    base.ViewWillAppear (animated);
    this.ParentViewController.NavigationItem.SetHidesBackButton (true, false); 
    //remember to use ParentViewController to reference to the NavigationViewController (if your contentPage is direct under a navigation controller. I don't know why but Xamarin must have a bug with SetHidesBackButton. If you call with this.NavigationItem.SetHidesBackButton(...), it should not work. 
    ... other implements here ...
}
2
répondu Duyen-Hoa 2014-12-22 13:16:23