在mvvmcross中的应用程序休息之前注册屏幕工作流程

时间:2013-11-06 03:51:45

标签: ios mvvmcross

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

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

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

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

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

1 个答案:

答案 0 :(得分: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());