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)

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