2

我一直在研究使用 MvvmCross 作为我们跨平台开发的解决方案,之前的开发只针对 iOS。我真的很喜欢故事板如何将所有视图以及它们之间的流程包含在一起。

我知道 Monotouch 支持他们在我已经能够使用的故事板项目中的使用,但是我无法找到任何与 MvvmCross 一起使用的参考/示例。

目前支持吗?或者有人可以为我提供一些关于如何获得此设置的提示。启动似乎是故事板项目中的问题,AppDelegate 中的 FinishedLaunching 方法通常为空

4

1 回答 1

1

目前支持吗?

我不相信它是。

除了演示应用程序之外,我从未使用 Storyboards 构建任何东西——所以我不是专家。

但是,据我所知,我认为您需要克服 3 个问题。

1. 故事板在 FinishedLaunching 中没有代码

我认为这很容易解决 - 您只需向 FinishedLaunching 添加一个覆盖,它调用一个 MvvmCross Setup 类来初始化 IoC、插件、您的应用程序等。

2. MvvmCross vNext 要求您将构造函数覆盖为如下形式

public DetailViewController (MvxShowViewModelRequest request) {
}

而故事板需要使用以下形式:

public DetailViewController (IntPtr handle) {
}

克服这一点更难......但好消息是它在 v3 中应该更容易 - v3 的既定目标之一是以某种方式支持故事板 - 请参阅http://slodge.blogspot.co.uk/2013/ 02/mvvmcross-v3.html

3.概念冲突

如果您使用 Storyboard,则导航逻辑与 Storyboard 和 UIViewController 相关联。

如果您使用的是 MvvmCross,则导航逻辑与 ViewModel 相关联。

克服这一点相对简单——你可以轻松地混合和匹配概念——但你可能会发现你的 ViewModels 和 Views 感觉“有点奇怪”。


概括

今天这样做是可能的,但需要几个小时的黑客攻击。

v3 的测试版很快就会到期(几周内 - 仅取决于我的业余时间)。一旦可用,我认为您将能够更快地开始。

于 2013-02-19T07:36:19.033 回答