根据ios版本的不同ViewControllers

时间:2013-12-04 08:53:16

标签: ios iphone objective-c uiviewcontroller versioning

UICollectionViewController TabBarViewController iOS 6.0适用于ViewController及更高版本的ios版本。我想知道如果设备的长度大于iOS 6.0,是否有任何方法可以使用不同的UITableView。例如,对于使用iOS 6.0UICollection的设备,对于使用iOS 6.0和后续版本的设备,我可以使用PSTCollectionView吗?

我也试过{{1}},但它有一些问题。

我添加了一张显示故事板的图片。我的集合在TabBarController中,如果设备在iOS 6.0之前使用,我想更改为TableView。enter image description here

4 个答案:

答案 0 :(得分:4)

有一个非常简单的解决方案

例如在tabBarControllers中,索引2用于CollectionView,而3用于TableViewController

在故事板中简单地完成所有必需的设置图标名称等

现在在您的ApplicationDidFinishLaunchingWith Options中执行此操作

我假设您的tabbarController是rootViewContrller,请执行此操作

UITabbarController *tabbarController = (UITabBarController *)self.window.rootViewController;
NSMutableArray *arrayControllers = [NSMutableArray arrayWithArray:tabbarController.viewControllers];
if (OlderVersion) {//Check
    [arrayControllers removeObjectAtIndex:2];
}else{
    [arrayControllers removeObjectAtIndex:3];
}
[tabbarController setViewControllers:arrayControllers];

答案 1 :(得分:0)

是的,你可以这样做。

只需获取手机版本:

[[UIDevice currentDevice] systemVersion]

然后,根据值加载右视图控制器。

答案 2 :(得分:0)

您需要向视图控制器添加标识符

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
if(versionValue>=7)
{
    UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"viewControllerIOS7"];
}
else
{
    UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"viewControllerIOS6"];
}

希望得到这个帮助。

答案 3 :(得分:-1)

是的,您可以检查您的版本的以下条件。

NSString *currSysVer = [[UIDevice currentDevice] systemVersion];

    float versionValue=[currSysVer floatvalue];

    if(versionValue>=6)
    {
        // do some stuff you want to do here
    }

希望对你有所帮助。