【问题标题】:Have only one Navigation Controller (and sub viewcontrollers) be in landscape只有一个导航控制器(和子视图控制器)处于横向
【发布时间】:2012-09-11 05:45:50
【问题描述】:

我有一个几乎总是纵向的故事板应用程序。我确实有一个需要处于横向模式的导航控制器(带有 2 个视图控制器)。它连接回应用程序的主选项卡控制器,应用程序中的所有其他视图控制器和导航控制器都需要保持纵向模式。我尝试将方向设置为横向并允许左右方向,但这会解锁所有视图控制器以切换到横向模式。有没有办法只允许这 2 个?

感谢您的帮助! 本

【问题讨论】:

    标签: iphone ios ios5 uistoryboard


    【解决方案1】:

    您必须在应用程序的每个视图控制器中子类化 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation,并且只允许 2 个视图控制器使用它。 但是对于您的标签栏,您还需要在呈现这些视图控制器时将其设置为 YES(您可能需要将标签栏子类化才能做到这一点),否则为 NO

    【讨论】:

    • 感谢您的回复!对不起-我对此真的很陌生。当您说对那行代码进行子类化时,这是否意味着在视图控制器的 .h 或 .m 文件中?还是完全不同的东西?再次感谢您的帮助。
    • 更好的说法是“覆盖”该方法。将其添加到您的 .m 文件中。它将替换从超类(在本例中为 UIViewController)继承的同名现有方法。
    • 我想我明白了——谢谢!我读了一点——这看起来适合我想要做风景的吗? - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); }
    • 是的,您必须在您希望能够旋转的每个视图控制器中覆盖它,但也必须在它们的父视图控制器上覆盖它,因为只有在父视图允许旋转时才会调用它。这就是为什么我认为您需要将 UITabBarController 子类化以仅在呈现正确的 VC 时才允许旋转
    【解决方案2】:

    首先,不要继承 UINavigationController !

    对于只有 LandScape Orientation,在需要位于 Landscape 的 ViewController 类中使用它:

        - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
    }
    

    这将使您的视图仅处于横向模式。不要创建 UINavigationController 的子类来将上面的 sn-p 放入其中!这将导致您的所有视图保持横向锁定!

    希望能帮到你:)!

    【讨论】:

    • 感谢您的回复!我试过了,但它似乎没有做任何事情。我放置它的视图保持纵向,没有它的视图也是如此。
    • 你是否继承了你的 UINavigationController ?它应该可以工作,在我的项目中效果很好。
    • 我没有 - UINav 转到 UIViewController(也没有子类)。这有一个按钮,它推送到 UIViewController 的子类并具有上面的代码。即将从头开始尝试一个新项目。
    • 添加更多细节 - 我这样做的原因是我正在视图中的 webkit 中加载视频。我希望它能够以横向播放,而不仅仅是纵向播放。应用程序中的其他所有内容都可以在纵向上很好地工作 - 仅此一个 webkit(视频)。
    猜你喜欢
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    相关资源
    最近更新 更多