0
votes

Est-il possible de faire sauter une page modale, puis de pousser immédiatement un nouveau?

J'ai essayé ceci mais cela ne fonctionne pas xxx


0 commentaires

3 Réponses :


1
votes

L'objet de la page modale est détruit une fois qu'il est apparu, vous pouvez donc utiliser cette solution de contournement, ce qui fonctionne car lorsque vous POPMODALASYNC (), il incendiera l'événement ONAPPARING () dans la page appelante (celle duquel à partir de laquelle vous avez présenté. la page modale). Donc, pour faire quelque chose après son retour d'une page modale, qui, dans votre cas, vous pouvez simplement présenter une autre page modale, vous pouvez:

public class NonModalCallingPage
{
    private bool ReturnedFromModalPage = false;


    private async void YourButtonClickedToOpenFirstModal (object sender, EventArgs e)
    {
        ReturnedFromModalPage = false;
        await Navigation.PushModalAsync(new NavigationPage(new FirstModalPage()));
        ReturnedFromModalPage = true;
    }

    protected override async void OnAppearing()
    {
        base.OnAppearing();

        if (ReturnedFromModalPage)
        {
            ReturnedFromModalPage = false;
            await Navigation.PushModalAsync(new SignUp());
        }
    }
}


2 commentaires

Salut, merci pour la réponse, mais malheureusement, lorsque je passe à travers le code, l'événement ONAPPARING () ne se déclenche pas lorsque la page est sautée


Il tire pour moi et travaille si vous le souhaitez pour votre cas sur Android, iOS et UWP à l'aide de Xamarin.Forms version 4.2 - Quelle plate-forme et quelle version de formes Xamarin ne sont-elles pas capables de voir cela arriver?



0
votes

C'est possible. Vous pouvez utiliser délégué strong> à Realzie IT .Je montrera un échantillon avec Mainpage em> / / / / / pour le montrer.

Définir un délégué dans PAGEA strong> et la méthode pour l'appeler: p> xxx pré>

secondpage strong> lors de la page précédente invoquer Délégué code> MAINPAGE CODE>: P>

public partial class SecondPage : ContentPage
{
    // declare delegate also in second page
    MyDelegate myDelegate;

    public SecondPage(MyDelegate deleagteVoid)
    {
        InitializeComponent();
        // assign delegate
        this.myDelegate = deleagteVoid;
    }


    private async void Button_Clicked(object sender, EventArgs e)
    {
        // pop to previous page
        await Navigation.PopModalAsync();
        //invoke delegate method in MainPage
        myDelegate(true);
    }
}


0 commentaires

0
votes

Vous pouvez faire la navigation à l'aide de App.current.Mainpage. XXX


0 commentaires