我浏览了大部分MvvmCross教程,我认为我已经准备好开始我的第一个iOS项目了。但是,在尝试实施导航结构的第一个小时内,我陷入了困境。
这就是我想要实现的目标:
1)首次加载应用时,需要显示带有登录和注册按钮的启动画面。 2)只有在登录或注册后,用户才能进入主视图。
我尝试使用视图模型中的命令执行此操作,如:
//authentication code here...
ShowViewModel<MainViewModel>();
这个问题是,当它导航到主视图时,用户可以按下顶部的后退按钮并返回到登录屏幕,然后按后退按钮返回启动画面试。
我找到的解决方案是使用MainView作为启动视图,Splash屏幕应该是一个面板,当用户通过身份验证时,该面板变得不可见。但我不知道这是否是这种情况的常见做法。
谢谢!
答案 0 :(得分:2)
您可以进入App类并更改应用启动时加载的视图模型。
public class App : Cirrious.MvvmCross.ViewModels.MvxApplication
{
public override void Initialize()
{
CreatableTypes()
.EndingWith("Service")
.AsInterfaces()
.RegisterAsLazySingleton();
Globals.Init().Wait();
if (Globals.HasCredentials())
{
RegisterAppStart<ViewModels.DispatchListViewModel>();
}
else
{
RegisterAppStart<ViewModels.WelcomeViewModel>();
}
}
}
答案 1 :(得分:0)
如果你正在使用UINavigationController,你可以使用以下命令从视图堆栈中弹出启动画面:
NavigationController.PopViewControllerAnimated(true);