支持iOS 4.3到iOS 6.0

时间:2012-10-08 07:13:21

标签: iphone ios ios5 ios6 ios4

我已经拥有支持ios 4.3到ios 5的基本代码。现在我也想支持ios 6.0。 目前的基本代码为modal views,硬编码CGRect's,每个视图的轮播不同。所以我想知道我们是否可以使用相同的基本代码支持ios 4.3到ios 6.0,只需调整一些更改,或者我们是否需要创建一个完整的新目标?

如果我想支持以前的版本,我们就不能使用ios 6.0的自动布局,因为它会导致崩溃。

3 个答案:

答案 0 :(得分:4)

是的,我们可以通过将部署目标设置为iOS 4.3来实现此目的。但是,为什么你需要支持iOS< 5.0大约85-90%的设备在iOS 5.0+上。见this

此外,当您设置对iOS 4.3甚至iOS 5.1.1的支持时,您将不得不处理多个事情。例如,Orientation方法,

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
不为iOS 6调用

。它由方法

替换
- (NSUInteger)supportedInterfaceOrientations

- (BOOL)shouldAutorotate

您需要在设备上使用所有iOS版本,然后测试应用的每个方面。

答案 1 :(得分:1)

使用Xcode 4.5,使用一个代码库来构建iOS 4.3 - 6.0应用程序是完全有效的,但一如既往,关键是使用给定的操作系统版本在真实的iDevices上进行测试。

答案 2 :(得分:1)

是的,完全没问题,可以使用xcode 4.5支持ios 4.3到ios 6.0。

对于ios 6中的方向,必须做一些解决方法,比如必须按照 @Mayur J的答案中的不同方式添加一些代码。

或者您所能做的就是为所需的控制器添加类别,例如UINavigationControllerUIPopoverViewControllerUIImagePickerViewController等,以便在ios 6.0中返回支持的方向,如下所示

.h文件

#import <UIKit/UIKit.h>

@interface UIPopoverController (UIPopoverController_Orientation)

-(NSUInteger) supportedInterfaceOrientations;

@end

.m文件

#import "UIPopoverController+UIPopoverController_Orientation.h"

@implementation UIPopoverController (UIPopoverController_Orientation)

-(NSUInteger) supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}
@end

我在这里使用UIInterfaceOrientationMaskLandscape,因为我只支持横向定位,即将我的应用限制为仅横向模式。

希望这会对你有所帮助。

快乐编码:)