您的位置:首页 > 移动开发 > IOS开发

IOS强制横竖屏幕切换总结续

2015-08-04 19:52 369 查看
在不了解强制旋转屏幕的概念先看看之前的文章:http://blog.csdn.net/zsykile/article/details/47169347

现在已经确定,把工程设置关闭照样在代码中可以截获横竖屏的控制权力!

这个文章主要是对 一些我之前遇到的 纠结的地方做一个 解答,在之前的项目中 工程横竖屏设置已经彻底关闭。从视频列表到 视频详情界面是push的过程,然后写上了旋转代码

AppDelegate *app = (AppDelegate *)[UIApplication sharedApplication].delegate;
    app.makeOrientation = UIInterfaceOrientationLandscapeRight;
[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeLeft] forKey:@"orientation"];
界面死活不转只看见 UIAlertView 在转。折腾了一天,最后在下班的时候发现根视图没有用
UINavigationController 直接用了UIViewController的类别的UINavigationController,难怪转不过来,于是就把
UIViewController加入到UINavigationController里,心想这下可以转了,最后运行,还是没有转。又查找了好几个小时,发现工程里面有个UINavigationController的类别。里面写了这样的代码

- (BOOL) shouldAutorotate
{
    return NO;
}

差点让这句代码害死,于是赶紧注释掉,再运行就可以旋转了!
所以 在UINavigationController写关于控制旋转的代码要小心,不同的场合用不同的代码

-(NSUInteger)supportedInterfaceOrientations

{

   
return UIInterfaceOrientationMaskPortrait;//UIInterfaceOrientationMaskLandscapeRight;

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

{

   
return UIInterfaceOrientationPortrait;//UIInterfaceOrientationLandscapeRight;

}

- (BOOL) shouldAutorotate

{

   
return NO;

}

还有不同的界面是否要写上面的代码要仔细考虑!总结一下:强制旋转必须基于UINavigationController,最后附上demo
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: