C# Xamarin形成PopModalAsync';t触发器

C# Xamarin形成PopModalAsync';t触发器,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我正在使用Xamarin.Auth构建一个带有facebook登录名的Xamarin.Forms应用程序 入口点(app.cs): 欢迎浏览网页: using System; using Xamarin.Forms; namespace Project { public class WelcomePage : ContentPage { public WelcomePage() { var login = new Butt

我正在使用Xamarin.Auth构建一个带有facebook登录名的Xamarin.Forms应用程序

入口点(app.cs):

欢迎浏览网页:

using System;
using Xamarin.Forms;

namespace Project
{
    public class WelcomePage : ContentPage
    {
        public WelcomePage()
        {
            var login = new Button { Text = "Login" };
            login.Clicked += (sender, e) =>
            {
                Navigation.PushModalAsync(new LoginPage());
            };

            Content = new StackLayout
            {
                BackgroundColor = Color.FromHex("F0C640"),
                Padding = new Thickness(10, 40, 10, 10),
                Children = {
                    new Label { Text = "Please login" },
                    login
                }
            };
        }
    }
}
登录页面:

using Xamarin.Forms;

namespace Project
{
    public class LoginPage : ContentPage
    {
    }
}
这是空的,因为我使用Xamarin.Auth对facebook进行身份验证,所以我在iOS和Android上创建了两个不同的渲染器来显示facebook登录页面。登录成功后,我调用位于我的app.cs文件中的操作:

public Action SuccessfulLoginAction
{
    get
    {
        return new Action(() => goToMainPage());
    }
}

public void goToMainPage()
{
    MainPage.Navigation.PopModalAsync();
    //MainPage.Navigation.PopToRootAsync();
    MainPage.Navigation.PushAsync(new DetailPage());
}
在认证结束时,页面是白色的,但我相信在认证完成后,它是来自Facebook的白色页面

SuccessfulLoginAction调用得很好,因此我将遍历goToMainPage()函数

我设置了一些断点,PopModalAsync()什么也不做,PopToRootAsync()和PushAsync()也是如此

DetailPage只是一个带有标签的页面。如果我尝试在进程开始时(app(){})显示它,它会显示得很好


谢谢。

您是否尝试过在goToMainPage函数中使用PushModalAsync?您是否尝试过将wait关键字放在to异步调用的前面?Hi@I_Khanage。我刚刚试过MainPage.Navigation.PushModalAsync(newdetailpage());要将函数更改为async+add await,但它也不起作用…您是否在goToMainPage中等待了两个异步调用?是的,我等待了它们,但没有效果,我仍然有相同的行为。尝试将您的
WelcomePage
放入导航页面,以从导航堆栈中获益:
MainPage=new NavigationPage(new WelcomePage());
您是否尝试过在goToMainPage函数中使用PushModalAsync?您是否尝试过将Wait关键字放在to异步调用的前面?Hi@I_Khanage。我刚刚尝试了MainPage.Navigation.PushModalAsync(new DetailPage());若要将函数更改为async+add await,但它也不起作用…您是否在goToMainPage中等待了两个异步调用?是的,我等待了它们,但没有效果,我仍然有相同的行为。请尝试将您的
WelcomePage
放入导航页面,以从导航堆栈中获益:
MainPage=new NavigationPage(新的欢迎页面());
public Action SuccessfulLoginAction
{
    get
    {
        return new Action(() => goToMainPage());
    }
}

public void goToMainPage()
{
    MainPage.Navigation.PopModalAsync();
    //MainPage.Navigation.PopToRootAsync();
    MainPage.Navigation.PushAsync(new DetailPage());
}