【发布时间】:2019-07-12 09:09:11
【问题描述】:
我有一个主页:HomeVM。 当应用程序启动时,我将 PushModalAsync 用于 RegistrationVM 在我的 RegistrationVM 中,我有一个 pushModalAsync 按钮 -> LoginVM
当用户连接时,我想回到虚拟机 HomeVM,但不可能,使用 PopModalAsync,我回到 RegistrationVM。
我想关闭所有 popmodalasync。
我试过了
在我的 app.xaml 中:
var mainPage = (Page)ViewFactory.CreatePage(typeof(HomeVM));
MainPage = new NavigationPage(mainPage)
{
BarBackgroundColor = (Color)Resources["PrimaryColor"],
BarTextColor = Color.White,
};
Navigation = MainPage.Navigation;
protected override void OnStart()
{
var registrationpage = (Page)ViewFactory.CreatePage(typeof(RegistrationVM));
MainPage.Navigation.PushModalAsync(registrationpage);
}
注册虚拟机:
public RegistrationVM()
{
Task.Run(async () => await ConnectionAPI());
}
async Task ConnectionAPI()
{
try
{
applicationContext.Device = mydevice;
await Navigation.PushModalAsync<LoginVM>(async (vm, p) => await vm.InitializeAsync(this));
}
catch (Exception e)
{
Log.Error(e, "Unhandled exception while loading touch points : {e}", e);
}
finally
{
}
}
登录虚拟机: 当用户点击“登录” PreviousVM = RegistrationVM。
async Task Login()
{
try
{
Log.Information("Logging in");
applicationContext.User = employe;
await Navigation.PopModalAsync();
await Navigation.RemoveAsync(previousVM);
}
catch (Exception e)
{
Log.Error(e, "Unhandled exception during log in : {e}", e);
}
finally
{
}
}
我回到注册视图
【问题讨论】:
-
可以分享一下
ViewFactory的代码吗?
标签: xamarin xamarin.forms navigation