是否可以在同一个ViewController上启用/禁用横向?

时间:2015-06-11 08:59:40

标签: objective-c

正如标题所说,是否可以在同一个ViewController上启用和禁用横向模式? 我需要它,因为我有一个UIWebView,可以全屏打开视频播放器,播放器应该有可能旋转(如果切换到全屏),但由于我的ViewController已禁用横向,它不会当用户在全屏幕上打开视频播放器时,我设法有callback,但在viewDidLoad之后我没有找到关于启用/禁用Landscale的任何内容。

1 个答案:

答案 0 :(得分:0)

这是可能的。

在目标设置/ plist中,您必须启用所有可能的UIInterfaceOrientation

enter image description here

UINavigationController子类中,根据需要阻止所有轮换:

#pragma mark - Rotation

-(BOOL)shouldAutorotate
{
    return NO;
}

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

在任何UIViewController中,您要启用UIInterfaceOrientation覆盖方法:

#pragma mark - Rotation

-(BOOL)shouldAutorotate
{
    return YES;
}

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