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

在不了解强制旋转屏幕的概念先看看之前的文章: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值