在iPhone应用程序中的单个viewController的横向方向

时间:2013-05-28 22:09:57

标签: ios orientation uiinterfaceorientation

我需要我的iphone应用程序的所有视图都处于纵向模式,除了一个。

我有一个列表视图控制器(视图1),单击时显示详细视图(视图2) 在详细视图中,我有一个触发模态segue的按钮,该按钮应在横向模式下显示视图(视图3)。

在XCode中,我为视图1和2设置了纵向,我为视图3设置了横向。

当应用程序启动时,视图1以纵向模式显示,但是当我更改方向时,它会切换到横向,我需要它保持纵向。

当我点击查看2的按钮时,视图3以纵向模式显示(这是我唯一需要在横向模式下显示的模式)。

视图1和2有:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
  // Return YES for supported orientations
  return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

观看3有:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
  // Return YES for supported orientations
  return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}

视图1和视图2总是以纵向显示缺少配置,视图3总是以横向显示?

修改

我最终只是以纵向方式离开了应用程序方向,并使用通知事件来旋转我需要在横向中显示的视图。这样做非常好。

2 个答案:

答案 0 :(得分:1)

如果您在iOS 6下运行,则不推荐使用shouldAutorotateToInterfaceOrientation。您应该使用supportedInterfaceOrientationsForWindow:shouldAutorotate方法。

查看UIKit标题下的iOS 6发行说明here

答案 1 :(得分:0)

supportedInterfaceOrientations UIViewController您要为iOS6而不是shouldAutorotateToInterfaceOrientation实施。{/ p>