iOS 7在视频播放中解锁设备方向

时间:2014-04-29 14:22:13

标签: ios iphone objective-c ios7 device-orientation

我的整个应用程序都是纵向锁定的,但是当播放视频时,我想允许所有方向仅用于视频播放。

故事板: TabBarController - > NavigationController - > MyVideosController - > MyVideoPlayerController

这是我尝过的众多尝试之一: Allow One View to Support Multiple Orientations While Others Do Not iPhone

问题是我从未在MyVideoPlayerController.m中使用此方法:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 

3 个答案:

答案 0 :(得分:1)

对于iOS-6,我已经完成了这项工作,它运行得很好

(NSUInteger)supportedInterfaceOrientations
{ 
    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft;
}

(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{ 
    return UIInterfaceOrientationLandscapeLeft;
}

答案 1 :(得分:1)

根据我的经验,您在这里找到的每一条建议都不适合您。您要做的是(如果您使用的是故事板)添加另一个导航控制器和视图控制器。您将以模态方式推动第二个导航控制器并将其锁定到您想要的方向。通过这种方式,您的视频播放器可以“弹出”并处于您想要的方向。

真的很烦人。

另一种选择(我并不是真的建议)是你可以打开AutoLayout并尝试IOS6版本。

答案 2 :(得分:1)

尝试使用此代码,将其添加到您正在为我工​​作的课程中:

#pragma mark - Orientation
- (BOOL)shouldAutorotate {
    return YES;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskLandscapeLeft;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationLandscapeRight;
}

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