2013-08-28 155 views
0

随着iOS(Monotouch)的更新为6,选择是否旋转的方法不再仅仅依赖于ViewController。
使用GetSupportedInterfaceOrientations和ShouldAutorotate作为现在这样做的方法,有必要控制RootViewController。否则,本地覆盖方法值将被忽略。
在Objective C中做这件事,甚至是直接MonoTouch是非常直接的,但MVVMCross似乎处理后台的ViewControllers的大部分推送和弹出,我无法获得这些方法来使用MVVMCross。MVVMCross iOS支持的方向

是否有某种方法可以正确控制MVVMCross和iOS6的方向,还是仅仅不被支持?

回答

1

MvvmCross通过一个称为演示者的组件推动并弹出视图控制器。这是提供RootController并帮助其与子项进行交互的原因。

在App Setup.cs过程中定制并覆盖演示者很容易 - 您可以在protected override IMvxTouchViewPresenter CreatePresenter()中实现并返回自定义演示者。

对于这方面的一些例子,见http://slodge.blogspot.co.uk/2013/06/presenter-roundup.html

+0

所以默认MVX的iOS主持人不支持旋转。这似乎很奇怪。 – cdbitesky

+0

默认演示者确实支持旋转 - 它提供了一个默认的UINavigationController - 默认情况下完全支持旋转。您可以自由地将Apple和Mvx的默认行为视为“奇怪” - 幸运的是,使用您自己对正常性的首选解释来定制默认行为非常容易。 – Stuart

+0

iOS的唯一mvx示例我已经看到所有支持iOS 5形式的旋转,因此已被弃用。较新的方法从6开始都依赖于ViewController堆栈来推动定向掩模。演示者的默认行为或者没有考虑到这一点,或者以某种方式被阻止。您是否尝试制作针对iOS 6的新应用程序? – cdbitesky