Ios 将Google Mobile Analytics与MVVMCross集成

Ios 将Google Mobile Analytics与MVVMCross集成,ios,google-analytics,mvvmcross,Ios,Google Analytics,Mvvmcross,新的Google Analytics SDK为UIViewController引入了一个新的子类,您必须从中继承:GAITrackedViewController 更多信息请点击此处: 这显然与MvxBindingTouchViewController冲突,因为您只能从C#中的一个类继承 建议使用什么方法来实现此功能?MvvmCross的MvxTouchViewController非常特别 MvvmCross的MvxBindingTouchViewController更为特殊 但它们的特殊之处在

新的Google Analytics SDK为
UIViewController
引入了一个新的子类,您必须从中继承:
GAITrackedViewController

更多信息请点击此处:

这显然与
MvxBindingTouchViewController
冲突,因为您只能从C#中的一个类继承


建议使用什么方法来实现此功能?

MvvmCross的MvxTouchViewController非常特别

MvvmCross的MvxBindingTouchViewController更为特殊

但它们的特殊之处在于它们继承了标准UIVIewController(UIVIewController、UITableViewController、UIAbbarController等),然后添加了以下功能:

  • Cirries.MvvmCross层的ViewModel构造和ViewModel属性
  • Cirries.MvvmCross.Binding层绑定的构造和存储

请看一些示例:

在这些代码中,您可能会看到这涉及到大量的代码剪切和粘贴,尽管我们确实尝试使用扩展方法将其最小化。(如果C#有多重继承或混合,我们就不需要这样做——我很想有混合……但永远不要多重继承!)

所以。。。。如果要添加自己的MvxXXXXXBindingViewController,则:

  • 以您的基本XXXXX类
  • 从中继承并添加“stuff”以生成MvxXXXXViewController
  • 然后使用您的MvxXXXXXViewController并再次从中继承,以使您的MvxBindingXXXXXViewController
  • 发布到你的博客和一个新的GitHub repo,这样其他人都可以利用你的辛勤工作
  • 工作完成

  • 高级说明:

    • 如果您想在Droid中看到相同的内容,请参见

    • TabBarController也很有趣——它有一些附加的方法

    • 在“不久”(今年上半年)的某个时候,我们将创建Veetree,这将把MvxViewController转换为非通用格式-这是因为MonoTouch现在建议不要在iOS基类上使用泛型-Rolf说大部分时间是安全的,但当它引起bug时,它们就是“海森堡”

    • 在当前的类(ViewDidUnload)中也有一些旧的iOS代码——这些代码也将在第三个类中被剔除