C# Xamarin形成PopModalAsync';t触发器
我正在使用Xamarin.Auth构建一个带有facebook登录名的Xamarin.Forms应用程序 入口点(app.cs): 欢迎浏览网页: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
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());
}