将Google移动分析与MVVMCross集成

时间:2013-01-25 09:28:29

标签: ios google-analytics mvvmcross

新的Google AnalyticsSDK会向UIViewController引入一个新的子类,您必须从该子类继承:GAITrackedViewController

此处有更多信息:https://developers.google.com/analytics/devguides/collection/ios/v2/screens

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

推荐这种方法的推荐方法是什么?

1 个答案:

答案 0 :(得分:0)

MvvmCross的MvxTouchViewController很特别......

MvvmCross的MvxBindingTouchViewController更加特别......

但这些只是特别之处在于它们从标准的UIViewControllers(UIVIewController,UITableViewController,UITabBarController等)继承,然后它们添加了以下功能:

  • ViewModel构造和Cirrious.MvvmCross图层的ViewModel属性
  • 在Cirrious.MvvmCross.Binding层构建和存储Bindings

看看一些例子:

在这些中你可以看到这涉及大量的代码剪切和粘贴 - 尽管我们尝试使用扩展方法来最小化它。 (如果C#有多个继承或mixins,我们就不需要这样做了 - 我很想拥有Mixins ......但是不要多次使用!)

所以....如果你想添加自己的MvxXXXXXBindingViewController,那么:

  1. 以您的XXXXX为基础,
  2. 从中继承并添加'stuff'来制作MvxXXXXViewController,
  3. 然后拿走你的MvxXXXXXViewController并再次从它继承来制作你的MvxBindingXXXXXViewController
  4. 发布到您的博客和新的GitHub回购,以便其他人可以背负您的辛勤工作
  5. 完成工作

  6. 高级笔记:

    • 如果您想在Droid中看到相同的内容,请参阅Insert a Monogame view inside MvvmCross monodroid Activity

    • TabBarController也很有趣 - 它有一些额外的方法

    • 在某些时候,“快”(今年上半年),我们将创建VeeThree,这将切换MvxViewController对非通用格式 - 这是由于MonoTouch的现在建议不要使用iOS上的基类泛型 - 罗尔夫说它大多数时候都很安全,但是当它引起虫子时它们就是'heisenbugs'。

    • 当前类中还有一些死旧的iOS代码(ViewDidUnload) - 此代码也会在VeeThree中被剔除。