iOS 6,5支持 portrait,landscape (横竖屏的处理)

本文详细介绍了如何在iOS6中解决横竖屏处理问题,并通过修改AppDelegate和viewController中的方法,实现了对iOS4和5的屏幕适配。主要涉及在AppDelegate中设置支持的界面方向,在viewController中实现横竖屏处理的三个关键方法。

最近在项目中遇到iOS6的一点问题,主要是横竖屏的处理不一样了,多了一些方法,原来的方法被废弃掉了。

可能主要是为了适配iPhone5吧。具体的原因不深究,解决问题。

在网上找了一些解决方法,但是不适合我在项目中使用。

    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 6.0) {

        [self.window addSubview:navController.view];

    }else{

        [self.window setRootViewController:navController];

    }

有人建议这样修改,但是我看不到任何这么修改的依据,所以项目中并没有使用这样的方式修改,

主要还是依赖于SDK自身的特点来进行修改吧。

进入正题:

主要修改以下几个方面

在AppDelegate中增添一个方法,我这里只支持竖屏的处理,就只设置了这一种方式(可以根据自身的需要进行设置)

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

{

    return (UIInterfaceOrientationMaskPortrait);

}

在viewController中增加下面的两个方法,同时保留原有的方法

//iOS6中新增的两个方法 

- (BOOL)shouldAutorotate

{

    return NO;

}

 

- (NSUInteger)supportedInterfaceOrientations

{

    return (UIInterfaceOrientationMaskPortrait);

}

//在iOS6中废弃了的方法,保留,以适配iOS4和5 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation

{

    return toInterfaceOrientation == UIInterfaceOrientationPortrait;

}

 

搞定了,然后在项目中就可以支持iOS6,iOS4和5的屏幕适配了,这里主要是竖屏,大多数程序也是竖屏

可以根据自身的需要进行修改。

转载于:https://my.oschina.net/orange1/blog/86030

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值