我有一个非常讨厌的问题,我现在已经打了好几个小时了。我有一个仅以纵向运行的应用程序,但是当我播放视频时,我希望它能够以横向方式播放。
从我读到的方法来看,改变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.
非常感谢。 路加
答案 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à!
希望这会有所帮助。
康拉德