Xamarin.ios Messenger插件的默认实例(可能是静态的),如MVVM Light

Xamarin.ios Messenger插件的默认实例(可能是静态的),如MVVM Light,xamarin.ios,mvvmcross,Xamarin.ios,Mvvmcross,MVVMCross中是否有与MVVM Light的Messenger.Default实例等效的实例(对于不符合Xamarin.iOS中MVVM的独立项目) 在查看线程之后,例如 我决定将“MvvmCross Messenger”插件添加到PCL和iOS项目中。我想我必须注册Hub,然后从PCL和iOS项目中用类似的方式解决它 //在iOS项目的ViewDidLoad()中注册 RegisterSingleton(新的MvxMessengerHub()); //尝试在PCL和iOS项目中解析和订阅

MVVMCross中是否有与MVVM Light的
Messenger.Default
实例等效的实例(对于不符合Xamarin.iOS中MVVM的独立项目)

在查看线程之后,例如

我决定将“MvvmCross Messenger”插件添加到PCL和iOS项目中。我想我必须注册Hub,然后从PCL和iOS项目中用类似的方式解决它

//在iOS项目的ViewDidLoad()中注册
RegisterSingleton(新的MvxMessengerHub());
//尝试在PCL和iOS项目中解析和订阅-都添加了nuget软件包
_messenger=Mvx.Resolve();
_令牌=\u messenger.SubscribeOnMainThread((消息)=>{
OutputLabel.Text=message.Number;
});

然而,我在
Mvx.RegisterSingleton
上得到了一个空引用异常。不太确定我错过了什么。我要找的就是信使。现在不想在这个项目中使用MVVM的任何其他部分

在MvvmCross中,我们将messenger设置为可选的,因此它在插件中

如果您想单独使用它,那么可以使用CrossLight演示中所示的代码启动插件系统-参见中的N=30和N=39-以及中的仅android演示

对于iOS,您可能需要一些一次性初始化代码,例如:

        if (MvxSimpleIoCContainer.Instance != null)
            return;

        var ioc = MvxSimpleIoCContainer.Initialize();

        ioc.RegisterSingleton<IMvxTrace>(new MvxDebugOnlyTrace());
        var manager = new MvxLoaderPluginManager();
        var registry = new MvxLoaderPluginRegistry(".Touch", manager);                          
        ioc.RegisterSingleton<IMvxPluginManager>(manager);
if(MvxSimpleIoCContainer.Instance!=null)
返回;
var ioc=MvxSimpleIoCContainer.Initialize();
ioc.RegisterSingleton(新的MvxDebugOnlyTrace());
var manager=new MvxLoaderPluginManager();
var registry=new MvxLoaderPluginRegistry(“.Touch”,manager);
国际奥委会登记处(经理);
messenger本身的代码位于:


或者。。。如果您不希望使用Mvx代码进行绑定、调度等,那么使用优秀的TinyMessenger之类的工具可能会更容易-

谢谢您的回复。我想我现在会看看TinyMessenger,因为这个项目没有使用MVVM。我很想在iOS项目中使用MVVMCross,但在情节提要中,混合使用VM和segue仍然有点笨拙。