强制iOS应用以横向模式启动

时间:2012-01-20 10:57:46

标签: objective-c ios5 xcode4.2

我正在为iOS 5开发一个必须以横向模式运行的应用程序。我的问题是我最初无法翻转它。

我尝试将“初始界面方向”设置为“横向(右侧主页按钮)” 并将以下方法添加到我的视图控制器:

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

我可以围绕它应该如何工作。 (我找到了代码here

我也想知道如何使用Xcode 4.2项目设置中提供的“支持的设备方向”,它似乎没有做任何事情。

我一直在浏览网站,但未能找到解决我问题的例子。

谢谢。

5 个答案:

答案 0 :(得分:16)

在应用程序的Info.plist文件中,添加UIInterfaceOrientation   键并将其值设置为   景观模式。对于景观   方向,你可以设置值   这个关键的   UIInterfaceOrientationLandscapeLeft   要么   UIInterfaceOrientationLandscapeRight

以横向模式布置视图,并确保正确设置其自动调整大小选项。

覆盖视图控制器的shouldAutorotateToInterfaceOrientation:方法,仅返回YES   理想的景观定位和NO   用于纵向方向。

答案 1 :(得分:11)

在appDelegate中使用以下内容

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];

还在

中设置所需的方向
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

//Here are some iOS6 apis, used to handle orientations.
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0) 
- (NSUInteger)supportedInterfaceOrientations - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

答案 2 :(得分:1)

当您在XCode中单击项目名称并在TARGETS下选择目标时,在“摘要”选项卡下,可以直观地显示支持的设备方向设置。这就是我设法做到的。

答案 3 :(得分:0)

我认为如果你在项目plist支持的接口方向上它将工作。只需添加一个名为“支持的界面方向”的新行,并使其成为数组类型,并为每个想要的景观视图添加2个项目。没有测试这只是一个快速猜测

答案 4 :(得分:-2)

试试这个会对你有帮助,你可以在viewdidload中编写这段代码。

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];