将Google移动分析与MVVMCross整合
新的Google AnalyticsSDK为您必须inheritance的UIViewController
引入了一个新的子类: GAITrackedViewController
。
更多信息: https : //developers.google.com/analytics/devguides/collection/ios/v2/screens
这显然与MvxBindingTouchViewController
冲突,因为只能从C#中的一个类inheritance。
推荐的方法是什么?
MvvmCross的MvxTouchViewController是特殊的…
MvvmCross的MvxBindingTouchViewController更加特别…
但是这些只是特别的,他们从标准的UIViewControllers(UIVIewController,UITableViewController,UITabBarController等)inheritance,然后添加以下function:
- ViewModel构造和Cirrious.MvvmCross图层的ViewModel属性
- 在Cirrious.MvvmCross.Binding层构build和存储绑定
看看一些例子:
-
https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Touch/Views/MvxTouchViewController.cs和https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious。 MvvmCross.Binding.Touch /浏览/ MvxBindingTouchViewController.cs
-
https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Touch/Views/MvxTouchTableViewController.cs和https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious。 MvvmCross.Binding.Touch /浏览/ MvxBindingTouchTableViewController.cs
-
https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Touch/Views/MvxTouchCollectionViewController.cs和https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious。 MvvmCross.Binding.Touch /浏览/ MvxBindingTouchCollectionViewController.cs
在这些你可以希望看到这涉及到相当数量的代码剪切 – 尽pipe我们尽量使用扩展方法来尽量减less它。 (如果C#有多重inheritance或混入,我们不需要这样做 – 我很想拥有Mixins,但是不需要多次的Inhertitance!)
所以….如果你想添加你自己的MvxXXXXXBindingViewController,那么:
- 把你的基地XXXXX类,
- 从它inheritance并添加“东西”,使一个MvxXXXXViewController,
- 然后把你的MvxXXXXXViewController并从它inheritance,使您的MvxBindingXXXXXViewController
- 发布到您的博客和新的GitHub回购,所以其他人都可以背负你的辛勤工作
- 任务完成
先进的笔记:
-
如果你想在Droid中看到相同的东西,请参阅在MvvmCross monodroid Activity中插入一个Monogame视图
-
TabBarController也很有趣 – 它有一些额外的方法
-
在“即将”(今年上半年)的某个时候,我们将创buildVeeThree,这会将MvxViewController切换为非通用格式 – 这是因为MonoTouch现在build议不要在iOS基类中使用generics – Rolf说这是安全的时间,但是当它引起错误时,它们就是'heisenbugs'。
-
在当前类(ViewDidUnload)中也存在一些死老的iOS代码 – 这个代码也会在VeeThree中被剔除。