Xamarin iOS 防止特定 viewcontroller 的旋转

Xamarin iOS Prevent rotation for specific viewcontroller

需要防止特定视图控制器上的屏幕旋转
我试过下面-

    public override bool ShouldAutorotateToInterfaceOrientation(UIInterfaceOrientation toInterfaceOrientation)
    {
        return false;
    }


    public override bool ShouldAutorotate()
    {
        return false;
    }


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


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


没有任何效果。

提前致谢!

你可以通过这个解释来解决这个问题。

1) 在你的 AppDelegate 中添加一个布尔值,例如

public bool disableAllOrientation = false;

2) 在 AppDelegate 中修改你的 UIInterfaceOrientationnMask

  public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations(UIApplication application, UIWindow forWindow)
        {
            if (disableAllOrientation == true)
            {
              return UIInterfaceOrientationMask.Portrait;
            }
            return UIInterfaceOrientationMask.All;
        }

3) 调用你想要改变方向的视图的控制器

appDelegate.disableAllOrientation = true;

4) 当视图关闭或更改时,您需要再次输入布尔值 错误并仅在需要时将屏幕置于原始方向。

appDelegate.disableAllOrientation = false;

我希望这能解决你的问题 我几天前遇到了同样的问题,这对我有帮助。