Xamarin.ios mvvmcross TabBarController ViewModel Init()未调用?

Xamarin.ios mvvmcross TabBarController ViewModel Init()未调用?,xamarin.ios,mvvmcross,Xamarin.ios,Mvvmcross,我已经实现了一个TabBarController,很像iOS的会议教程。现在一切都很好,只是看起来选项卡的Viewmodels上的Init方法从未像通常那样被调用 是否有什么我忘记做的事情来确保调用Init?如果必须,我可以将此代码移动到ViewModel的构造函数中,但如果可能的话,我希望避免这种情况 编辑 我想我真正想问的是,如果我手动实例化一个viewmodel并通过extension/helper方法从中创建一个视图,init会在过程中的某个时刻被调用吗?如果是这样,我希望在什么时候在v

我已经实现了一个TabBarController,很像iOS的会议教程。现在一切都很好,只是看起来选项卡的Viewmodels上的Init方法从未像通常那样被调用

是否有什么我忘记做的事情来确保调用Init?如果必须,我可以将此代码移动到ViewModel的构造函数中,但如果可能的话,我希望避免这种情况

编辑


我想我真正想问的是,如果我手动实例化一个viewmodel并通过extension/helper方法从中创建一个视图,init会在过程中的某个时刻被调用吗?如果是这样,我希望在什么时候在viewmodel上调用init?

如果使用默认的viewmodel定位器创建MvxViewModel,则会在MvxViewModel上调用构造初始化重载状态开始C-I-R-S序列-这是调用ShowViewModel时发生的情况

如果子选项卡的ViewModels是通过直接调用ViewModel上的new创建的(如中),那么显然不会发生相同的顺序

实际上,这里的区别在于:

选项卡ViewModels只是INotifyPropertyChanged对象 页面级别的MvxViewModels也是INotifyPropertyChanged对象,但您进一步希望在导航中对其进行初始化。
如果你想统一这两个概念,那么你可能。。。但事实上,我怀疑给这两种类赋予不同的名称可能会更简单、更简洁,只需将init代码放在tab视图模型的构造函数中,或者在主构造函数中自己对其调用Init。

如果使用默认的ViewModel定位器创建MvxViewModel,则会在MvxViewModel上调用构造初始化重载状态启动C-I-R-S序列-这是调用ShowViewModel时发生的情况

如果子选项卡的ViewModels是通过直接调用ViewModel上的new创建的(如中),那么显然不会发生相同的顺序

实际上,这里的区别在于:

选项卡ViewModels只是INotifyPropertyChanged对象 页面级别的MvxViewModels也是INotifyPropertyChanged对象,但您进一步希望在导航中对其进行初始化。
如果你想统一这两个概念,那么你可能。。。但事实上,我怀疑也许给这两种类赋予不同的名称会更简单、更简洁,只需将init代码放在选项卡视图模型的构造函数中,或者自己在主构造函数中对它们调用init即可。

太好了,这正是我所怀疑的情况。我将不得不做一点重构,以使这项工作,但它确实是可能的。感谢您的输入。仅供参考,我通过在ViewDidShow重载中调用viewmodels上的init使其工作。由于某些原因,如果viewmodel是由mvvmcross初始化的,我无法在其构造函数中调用Init。不知道为什么,但不管怎样,如果我在mvvmcross调用的操作/方法之外调用init,它似乎工作得很好。太好了,这就是我所怀疑的情况。我将不得不做一点重构,以使这项工作,但它确实是可能的。感谢您的输入。仅供参考,我通过在ViewDidShow重载中调用viewmodels上的init使其工作。由于某些原因,如果viewmodel是由mvvmcross初始化的,我无法在其构造函数中调用Init。不知道为什么,但不管怎样,如果我在mvvmcross调用的操作/方法之外调用init,它似乎可以正常工作。