肖像应用。风景视频。 shouldAutoRotate没有运行

时间:2013-09-17 23:09:33

标签: ios orientation ios7

我有一个非常讨厌的问题,我现在已经打了好几个小时了。我有一个仅以纵向运行的应用程序,但是当我播放视频时,我希望它能够以横向方式播放。

从我读到的方法来看,改变Info.plist以允许横向右,左和纵向,然后通过所有viewControllers并输入以下代码

- (BOOL)shouldAutorotate {
    return NO;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}
- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

//ios4 and ios5
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

问题是看起来根本没有调用它,因为在运行应用程序时仍然允许自由旋转。

有人能想到可能导致这个问题的事情吗?

我不知道是否值得一提,但我正在运行xcode 5的最新测试版并在我的iPhone 5上运行ios 7.

非常感谢。 路加

1 个答案:

答案 0 :(得分:2)

我有类似的问题。在我的情况下,我希望我的所有应用程序都在Portrait中,除了1个UINavigationController。这就是我解决它的方法:

我有一个带有UItabBarController的应用程序作为root。我的5个标签中的每一个都嵌入在UINavigationController中......这似乎是问题所在。所以,我做的是

1-您必须在“部署信息”

中允许所有“设备方向”

2-我为我的UITabBarController创建了一个自定义类。

3-在.m中我添加了以下代码:

- (BOOL)shouldAutorotate {
return YES;}

- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait; }

4-然后,在UIViewController中我希望与众不同,我在.m中添加了以下代码:

- (BOOL)shouldAutorotate {
return YES; }

 - (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll; }

Etvoilà!

希望这会有所帮助。

康拉德