0

可能重复:
横向模式仅适用于 iPhone 或 iPad

我正在制作一个仅限 iPad 的应用程序,我只想在整个过程中保持横向。

我对 iOS 编程非常陌生,并且正在使用 StoryBoard 方法来创建界面。

当我第一次设置应用程序时,我选择了一个视图并单击按钮使其仅是横向的。我发现这只会让它以横向启动,但不会阻止用户手动旋转。

所以,我发现我必须这样做:

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
        if (interfaceOrientation == UIDeviceOrientationLandscapeLeft ||  interfaceOrientation ==  UIDeviceOrientationLandscapeRight) 
        {
           return YES;
        }
        return NO;
    }

为了防止用户手动旋转它。

现在,我创建了一个导航控制器和一个设置为根视图控制器的常规视图。我还在该视图中添加了一个按钮。

我的问题是我的应用程序似乎仅在第一次启动时是横向的(字面意思是闪烁横向),但随后仅在导航控制器中是纵向的。

我还发现为导航控制器和 Storyboard 界面中的第一个视图控制器选择了“方向:横向”。

即使我将设备旋转到横向,应用程序也不会旋转。即使所有设置仅适用于横向,它似乎也停留在纵向。

如何使我的应用程序仅横向而不是其当前的纵向状态?

编辑:我实际上找到了自己的解决方案。

似乎链接到导航控制器的视图未链接到仅设置横向代码的类文件。

我所做的只是在 Storyboard 界面中选择 View Controller,单击右侧边栏上的“Show Identity Inspector”按钮并将类设置为我的 ViewController 文件的名称,其中代码:

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

曾是。

简而言之,我的视图控制器没有链接到视图控制器类文件。

4

2 回答 2

1

回来YESNO不是很推荐。

但是,返回UIDeviceOrientationLandscapeLeft应该使您的应用“仅限横向”:

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

如果这不起作用,请导航到您的Info.plist Info.plist 文件

并用和添加Supported interface orientations一行。Landscape (left home button)Landscape (right home button)

行的

Landscape此外,我建议在 Attributes Inspector中将 view(s) Orientation 更改为。

景观

于 2012-07-18T19:14:18.233 回答
0

设置您的返回值:

return NO;

如果您使用的是最新的 xcode,请从项目选项中设置方向。否则使用项目信息 plist 设置方向,支持的界面方向并将其设置为横向(左主页按钮) - 删除其余数组键。

于 2012-07-18T19:10:10.557 回答