MvvmCross在进一步展示之前显示视图

时间:2017-05-01 13:59:08

标签: c# xamarin task mvvmcross

我有一个应用程序,我可以在普通窗口上使用弹出视图。 为了获取用户需要登录的数据,我有一个令牌。 如果没有令牌,有没有人体验过这种方式,先显示一个视图,然后再前往你前往的地方?

更清楚地说明:

public void Init()
{
    if (!CheckToken())
    {
       Task.Run(() => ShowViewModel<InsertPasswordViewModel>())
                    .ContinueWith(t => GetData());
    }
    else
    {
        //Do your thing
        GetData();
    }
 }

现在的问题是该任务已运行,因此显示了视图并立即启动GetData,但他没有令牌和崩溃。

欢迎任何想法或修复

1 个答案:

答案 0 :(得分:1)

您不应该在Init中进行导航。您实际上是在远离您正在导航的页面中导航。 <{1}}被调用时导航尚未完成。

您也没有从Init获得结果,因此当您完成ShowViewModel中的所有操作后,您无法依赖返回任何内容。

您可能正在寻找的是导航到InsertPasswordViewModel,并通过某种参数告诉您来自哪里。然后让ViewModel使用该参数在密码正常后导航回来。 您可能也希望修改视图层次结构,您可以通过自定义演示者和一组演示提示来完成。