导航控制器(及其所有视图)仅为纵向。我怎样才能让它们成为风景画呢?

时间:2012-07-18 19:03:46

标签: iphone ios cocoa-touch ipad storyboard

  

可能重复:
  Landscape Mode ONLY for iPhone or iPad

我正在制作一款仅限iPad的应用程序,我希望在整个过程中只能使用它。

非常是iOS编程的新手,我正在使用StoryBoard创建界面的方法。

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

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

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

以防止用户手动旋转它。

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

我的问题是我的应用程序似乎只是在第一次启动时才会出现风景(字面意思是闪烁的景观),但后来只是看起来像导航控制器的肖像。

我还在导航控制器和Storyboard界面内的第一个View Controller中找到了“Orientation:Landscape”。

即使我将设备旋转到横向,该应用也不会旋转。即使所有设置仅适用于风景,它似乎也会卡在纵向中。

如何才能使我的应用仅限横向广告而不是当前的仅限肖像状态?

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

好像我链接到导航控制器的视图没有链接到我只为横向设置代码的类文件。

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

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

了。

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

2 个答案:

答案 0 :(得分:1)

不建议退回YESNO

然而,返回UIDeviceOrientationLandscapeLeft会使您的应用“仅限风景”:

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

如果不起作用,请导航至Info.plist Info.plist file

并添加Supported interface orientationsLandscape (left home button)Landscape (right home button)

row's

此外,我建议将视图方向更改为Landscape  属性检查器

landscape

答案 1 :(得分:0)

设置返回值:

return NO;

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