MvvmCross: Как заставить определенную ориентацию на MvxViewController в iOS 7 на iPhone

В моем приложении для iOS 7 я разрешаю только «Портрет» в «Поддерживаемая ориентация устройства» для всего приложения, за исключением того, что мне нужно разрешить ориентацию «Пейзаж» в представлении «Видеоплеер». Как я могу сделать это с MvvmCross или MvxViewController? Я попытался установить эти методы ShouldAutorotate (), GetSupportedInterfaceOrientations (), он ничего не делает. Он остается заблокированным в портретном режиме для просмотра «Видеоплеер». Кто-нибудь знает, как правильно установить ориентацию в представлении?

 public class VideoPlayerView : MvxViewController
 {
    public override bool ShouldAutorotate()
    {
        return true;
    }

    public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
    {
        return UIInterfaceOrientationMask.AllButUpsideDown;
    }

    public override UIInterfaceOrientation PreferredInterfaceOrientationForPresentation()
    {
        return UIInterfaceOrientation.LandscapeLeft;
    }

    public override void ViewDidLoad(bool animated)
    {
        Title = "Video";

        base.ViewDidLoad(animated);
    }    

}

ОБНОВЛЕНИЕ: я понял, как решить эту проблему.

Шаг 1) Для mvvmcross вы должны настроить новый ViewPresenter с наследованием от MvxModalNavSupportTouchViewPresenter

Шаг 2) Создайте новый наследующий контроллер навигации от UINavigationController с помощью следующего кода

            public override bool ShouldAutorotate()
            {
                return TopViewController.ShouldAutorotate();
            }

            public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
            {
                var orientation = TopViewController.GetSupportedInterfaceOrientations();
                return orientation;
            }

Шаг 3) Внутри нового View Presenter, который вы только что создали на шаге 1, переопределите метод CreateNavigationController и используйте новый NavigationController, который вы создали на шаге 2.

Шаг 4) В ViewController вы хотите изменить ориентацию, вы можете изменить его, переопределив метод GetSupportedInterfaceOrientations. Например, на моем VideoPlayerView у меня есть этот код ниже.

    public override bool ShouldAutorotate()
    {
        return true;
    }

    public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
    {
        return UIInterfaceOrientationMask.AllButUpsideDown;
    }

Ответы на вопрос(0)

Ваш ответ на вопрос