Xamarin.ios MvvmCross:在创建ViewModel后立即显示BTProgressHUD微调器

Xamarin.ios MvvmCross:在创建ViewModel后立即显示BTProgressHUD微调器,xamarin.ios,xamarin,mvvmcross,Xamarin.ios,Xamarin,Mvvmcross,我在使用MvvmCross构建的应用程序中使用BTProgressHUD Xamarin组件。我目前正在开发应用程序的iOS版本。My ViewModels进行多次web服务调用,并公开一个“IsBusy”属性(关联视图绑定到该属性),以显示或隐藏进度微调器。这与N=34 MvvmCross样本中的设置方式基本相同 问题在于,在某些情况下,ViewModel必须在创建服务后立即自动调用该服务。我试图在ViewModel的Start函数中进行调用,但我注意到BTProgressHUD微调器没有显示

我在使用MvvmCross构建的应用程序中使用BTProgressHUD Xamarin组件。我目前正在开发应用程序的iOS版本。My ViewModels进行多次web服务调用,并公开一个“IsBusy”属性(关联视图绑定到该属性),以显示或隐藏进度微调器。这与N=34 MvvmCross样本中的设置方式基本相同

问题在于,在某些情况下,ViewModel必须在创建服务后立即自动调用该服务。我试图在ViewModel的Start函数中进行调用,但我注意到BTProgressHUD微调器没有显示在视图顶部。我怀疑问题在于BTProgressHUD必须仅在视图可见后才显示,而ViewModel.Start运行时可能不是这种情况

以前有人遇到过这种情况吗?视图可见后,是否有一种简单的方法在ViewModel中运行代码

谢谢

视图可见后,是否有一种简单的方法在ViewModel中运行代码

N=42视频--引入了一个IVisible接口,您可以将其添加到ViewModel中-您的工作是从视图中调用它-但在每个平台上都很容易做到这一点。例如,在iOS上,它是使用ViewDidDisplay/ViewDidEnglish在中完成的

    protected IVisible VisibleViewModel
    {
        get { return base.ViewModel as IVisible; }
    }

    public override void ViewDidAppear(bool animated)
    {
        base.ViewDidAppear(animated);
        VisibleViewModel.IsVisible(true);
    }

    public override void ViewDidDisappear(bool animated)
    {
        base.ViewDidDisappear(animated);
        VisibleViewModel.IsVisible(false);
    }