2

我们在基于 MVVMCross 的应用程序中有一个注册流程,用户在首次使用时必须通过该注册流程 - 在使用应用程序中的任何功能之前。

目前,我们正在从第一个 ViewModel 的 Init() 中弹出注册视图,但这感觉很笨拙,例如:

 public class HomeViewModel: MvxViewModel{
   public void Init(){
        if (!RegistrationComplete){
           ShowViewModel<RegisterViewModel>();
        }
    }
  }

与上述不同,我们考虑将 RegistrationViewModel 设置为 AppStart,然后将应用程序“交换”回 HomeViewModel,但我们无法确定如何完成此“交换”

完成此寄存器以继续 mvvmcross 中的类型行为的推荐方法是什么?

4

1 回答 1

3

在https://github.com/MvvmCross/MvvmCross/wiki/Customising-using-App-and-Setup#custom-imvxappstart中介绍了一种方法

它使用一个CustomAppStart对象:

public class CustomAppStart
    : MvxNavigatingObject
    , IMvxAppStart
{
    public void Start(object hint = null)
    {
        var auth = Mvx.Resolve<IAuth>();
        if (auth.Check())
        {
            ShowViewModel<HomeViewModel>();
        }
        else
        {
            ShowViewModel<LoginViewModel>();
        }
    }
}

这在 app.cs 中注册为:

RegisterAppStart(new CustomAppStart());
于 2013-11-06T08:14:42.577 回答