【问题标题】:Restrict orientation per view controller限制每个视图控制器的方向
【发布时间】:2015-09-21 09:03:00
【问题描述】:

我想在每个视图控制器中说明他支持哪个方向并将其限制为它们。这是我尝试过的:

似乎没有任何解决方案有效。还是我错过了一些重要的事情?如何限制视图控制器 A 仅横向、视图控制器 B 仅纵向且视图控制器 C 可以以所有可用方向显示的方向?

【问题讨论】:

    标签: ios uiviewcontroller xamarin xamarin.ios orientation


    【解决方案1】:

    在您的视图控制器中覆盖 GetSupportedInterfaceOrientations() 应该可以解决问题:

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

    您在此处返回的方向将与应用允许的方向(项目属性)或您在应用委托中允许的方向相交。因此,请务必在此处指定所有方向或要支持的方向的最大集合

    查看这里documentation

    【讨论】:

    • 非常感谢!我在我的视图控制器中删除了ShouldAutorotate() 的覆盖,现在它可以工作了。我正在使用我的CustomNavigationController。还有一个问题:如果我从视图控制器 A(仅横向)导航到视图控制器 B(仅纵向),则方向不会更新。尽管视图控制器 B 只允许纵向,但我处于横向状态。只有在旋转之后,行为才会再次正确。
    • 如何从 A 导航到 B? UINavigationController推?
    • NavigationController.PushViewController (testViewController, true);
    • 您是否尝试过使用普通的UINavigationController 来查看您的自定义是否会造成问题?
    • 并非如此。我刚刚做了一个演示项目,现在我知道你的问题是什么了。这是一个类似的问题:stackoverflow.com/questions/6064900/… - 我的想法是拥有一个可以强制旋转的视图控制器并不是一个好的设计。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多