Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在ViewController中旋转单个视图_Ios_Objective C_Iphone_Ios8 - Fatal编程技术网

Ios 在ViewController中旋转单个视图

Ios 在ViewController中旋转单个视图,ios,objective-c,iphone,ios8,Ios,Objective C,Iphone,Ios8,在我的iOS 7/8应用程序中,我有几个ViewController,它们都应该是纵向的。我有一个视图控制器,它有一个全屏视图,可以播放视频。我需要这个视图能够根据手机的方向旋转。但是,不允许包含视频视图的视图控制器旋转,原因是有时会有一些其他视图覆盖在作为viewcontroller一部分的全屏视频视图上方,因此不应旋转这些视图 因此,如何旋转单个视图,以及如何得知设备的方向已更改。通常的[UIApplication sharedApplication].statusBarOrientatio

在我的iOS 7/8应用程序中,我有几个ViewController,它们都应该是纵向的。我有一个视图控制器,它有一个全屏视图,可以播放视频。我需要这个视图能够根据手机的方向旋转。但是,不允许包含视频视图的视图控制器旋转,原因是有时会有一些其他视图覆盖在作为viewcontroller一部分的全屏视频视图上方,因此不应旋转这些视图

因此,如何旋转单个视图,以及如何得知设备的方向已更改。通常的[UIApplication sharedApplication].statusBarOrientation不工作,因为viewcontroller本身不旋转

如何解决这个问题


谢谢

您无法强制旋转屏幕。还有另一种方法,在您的情况下,所有屏幕都是纵向的,您需要一个可以双向旋转的ViewController。您需要遵循下面描述的几个步骤

有关需要在“生成设置”中执行的设置,请参见图

创建UINavigationController类型的自定义类,比如CustomNavController,然后在.m类中添加以下代码

-(BOOL)shouldAutorotate{

    return YES; 
}

- (NSUInteger)supportedInterfaceOrientations{

     return UIInterfaceOrientationMaskAll; 
}
使用CustomNavController将视频控制器显示为模态,如下所示

VideoViewController *controller=[[VideoViewController alloc] initWithNibName:@"VideoViewController" bundle:nil]; 
CustomNavController *nav=[[CustomNavController alloc] initWithRootViewController:controller]; 
[self presentViewController:nav animated:YES completion:nil];
nav.navigationBar.hidden=YES;

这应该是可行的,诀窍是分开旋转。

这是一个被苹果拒绝的配方!如果你想试试你的缺点,你可以这样做:view.transform=CGAffineTransformMakeRotationM_PI_2so你想要一个viewController的视图被旋转,而其他视图不被旋转?!!嗨,CGAffineTransformMakeRotation方法似乎是一个不错的选择!