正如标题所说,是否可以在同一个ViewController上启用和禁用横向模式?
我需要它,因为我有一个UIWebView
,可以全屏打开视频播放器,播放器应该有可能旋转(如果切换到全屏),但由于我的ViewController已禁用横向,它不会当用户在全屏幕上打开视频播放器时,我设法有callback
,但在viewDidLoad之后我没有找到关于启用/禁用Landscale的任何内容。
答案 0 :(得分:0)
这是可能的。
在目标设置/ plist中,您必须启用所有可能的UIInterfaceOrientation
在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);
}