新的 Google Analytics SDK 引入了一个新的子类UIViewController
,您必须从中继承:GAITrackedViewController
.
更多信息:https ://developers.google.com/analytics/devguides/collection/ios/v2/screens
这显然与 冲突MvxBindingTouchViewController
,因为您只能从 C# 中的一个类继承。
让这个工作的推荐方法是什么?
新的 Google Analytics SDK 引入了一个新的子类UIViewController
,您必须从中继承:GAITrackedViewController
.
更多信息:https ://developers.google.com/analytics/devguides/collection/ios/v2/screens
这显然与 冲突MvxBindingTouchViewController
,因为您只能从 C# 中的一个类继承。
让这个工作的推荐方法是什么?
MvvmCross 的 MvxTouchViewController 很特别...
MvvmCross 的 MvxBindingTouchViewController 更特别……
但这些只是特殊之处在于它们继承自标准 UIViewController(UIVIewController、UITableViewController、UITabBarController 等),然后它们添加了以下功能:
看一些例子:
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/Views/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/Views/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/Views/MvxBindingTouchCollectionViewController.cs
在这些中,您可以希望看到这涉及到大量的代码剪切和粘贴——尽管我们确实尝试使用扩展方法将其最小化。(如果 C# 有多重继承或混合,我们就不需要这样做 - 我很想拥有混合......但永远不想要多重继承!)
所以....如果你想添加自己的 MvxXXXXXBindingViewController,那么:
进阶说明:
如果您想在 Droid 中看到相同的内容,请参阅Insert a Monogame view inside MvvmCross monodroid Activity
TabBarController 也很有趣——它有一些额外的方法
在某个时候“很快”(今年上半年),我们将创建 VeeThree,这会将 MvxViewController 切换为非通用格式 - 这是因为 MonoTouch 现在建议不要在 iOS 基类上使用泛型 - Rolf 说大多数情况下它是安全的时间,但当它导致错误时,它们是“heisenbugs”。
当前类 (ViewDidUnload) 中也有一些死掉的旧 iOS 代码——这些代码也将在 VeeThree 中被剔除。