1.首先你要把工程设置成可以旋转,targets的Device Orientation中设置
2.确定你的rootViewController是哪一种,如果你的rootviewcontroller是UINavigationController,你就需要重写一个navigationcontroller
继承UINavigationController,然后在你写的navigationcontroller中加入以下代码
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return toInterfaceOrientation != UIDeviceOrientationPortraitUpsideDown;
}
- (BOOL)shouldAutorotate
{
if ([self.topViewController isKindOfClass:[CEVideoViewController class]]) { // 如果是这个 vc 则支持自动旋转
return YES;
}
return NO;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
if ([self.topViewController isKindOfClass:[CEVideoViewController class]]) { // 如果是这个 vc 则支持自动旋转
return UIInterfaceOrientationMaskAllButUpsideDown;
}
return UIInterfaceOrientationMaskPortrait;
}
3.如果你的window的rootviewcontroller是UITabBarController那你要新建一个tabbarcontroller继承于UITabBarController,然后在你写的tabbarcontroller里面加入
- (BOOL)shouldAutorotate
{
return YES;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
UINavigationController *navController = (UINavigationController *)self.selectedViewController;
if ([navController.topViewController isKindOfClass:[CEVideoViewController class]]) {
return UIInterfaceOrientationMaskAllButUpsideDown;
} else {
return UIInterfaceOrientationMaskPortrait;
}
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return YES;
}
就可以支持某一个屏幕旋转,其他的不旋转了