MvvmCross 是不是支持故事板
Posted
技术标签:
【中文标题】MvvmCross 是不是支持故事板【英文标题】:Does MvvmCross support storyboardsMvvmCross 是否支持故事板 【发布时间】:2013-02-19 07:08:07 【问题描述】:我一直在研究使用 MvvmCross 作为我们跨平台开发的解决方案,之前的开发仅针对 ios。我真的很喜欢故事板如何将所有视图以及它们之间的流程一起包含在内。
我知道 Monotouch 支持他们在我已经能够使用的故事板项目中的使用,但是我无法找到任何与 MvvmCross 一起使用的参考/示例。
目前支持吗?或者有人可以为我提供一些关于如何获得此设置的提示。启动似乎是故事板项目中的问题,AppDelegate 中的 FinishedLaunching 方法通常为空
【问题讨论】:
【参考方案1】:目前是否支持?
我不相信。
除了演示应用程序之外,我从未使用 Storyboard 构建任何东西 - 所以我不是专家。
但是,据我所知,我认为您需要克服 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 的测试版很快就会发布(几周内 - 取决于我的业余时间)。一旦可用,我认为您可以更快地开始。
【讨论】:
感谢您的快速回复。我认为在处理 MvvmCross 设置的位置可能会有点棘手,因为我发现 FinishedLaunching 方法可能在基于 iOS 版本实例化第一个视图控制器之前或之后调用(它在在 iOS 6 和低于 5.1 的版本中)。但是,在更一般的说明中,我看到您指出了利益冲突,这使我重新考虑了自己的亲和力 ... 使用故事板。我会给个别的xibs一个去:)以上是关于MvvmCross 是不是支持故事板的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.iOS MvvmCross模板;无法打开故事板