【发布时间】:2012-09-11 05:45:50
【问题描述】:
我有一个几乎总是纵向的故事板应用程序。我确实有一个需要处于横向模式的导航控制器(带有 2 个视图控制器)。它连接回应用程序的主选项卡控制器,应用程序中的所有其他视图控制器和导航控制器都需要保持纵向模式。我尝试将方向设置为横向并允许左右方向,但这会解锁所有视图控制器以切换到横向模式。有没有办法只允许这 2 个?
感谢您的帮助! 本
【问题讨论】:
标签: iphone ios ios5 uistoryboard
我有一个几乎总是纵向的故事板应用程序。我确实有一个需要处于横向模式的导航控制器(带有 2 个视图控制器)。它连接回应用程序的主选项卡控制器,应用程序中的所有其他视图控制器和导航控制器都需要保持纵向模式。我尝试将方向设置为横向并允许左右方向,但这会解锁所有视图控制器以切换到横向模式。有没有办法只允许这 2 个?
感谢您的帮助! 本
【问题讨论】:
标签: iphone ios ios5 uistoryboard
您必须在应用程序的每个视图控制器中子类化 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation,并且只允许 2 个视图控制器使用它。
但是对于您的标签栏,您还需要在呈现这些视图控制器时将其设置为 YES(您可能需要将标签栏子类化才能做到这一点),否则为 NO
【讨论】:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); }
首先,不要继承 UINavigationController !
对于只有 LandScape Orientation,在需要位于 Landscape 的 ViewController 类中使用它:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}
这将使您的视图仅处于横向模式。不要创建 UINavigationController 的子类来将上面的 sn-p 放入其中!这将导致您的所有视图保持横向锁定!
希望能帮到你:)!
【讨论】: