UISplitViewController在xcode 6中创建,具有ios 7兼容性

时间:2014-12-17 13:35:01

标签: uisplitviewcontroller

我想创建一个使用UISplitViewController的应用。我使用的是xcode 6 + ios 8.1 SDk。我创建的示例应用程序在iOS 8(iPhone 5,iPhone 6+,iPad)上工作正常但在iOS 7上失败。是否有任何人帮助我实现这个功能,同时支持iOS 7& iOS 8.(使用语言目标C)

1 个答案:

答案 0 :(得分:1)

你实际上可以在iOS 7(iPhone或iPad)下使用UISplitViewController,但有一些技巧。首先,我不确定是否可以以编程方式进行,但您应该使用故事板。其次,请确保在故事板上启用了使用大小类复选框选项。

最后,还有一些问题可能会使用导航控制器而不是拆分视图控制器进行调用。例如,在默认的prepareForSeque方法(由默认的拆分控制器项目提供)中,我必须进行以下#if 1调整:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"showDetail"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        NSDate *object = self.objects[indexPath.row];

#if 1
        DetailViewController *controller = nil;
        if ([segue.destinationViewController isKindOfClass:[UINavigationController class]]) {
            controller = (DetailViewController*)[segue.destinationViewController topViewController];
        }
        else if ([controller isKindOfClass:[UISplitViewController class]]) {
            controller = segue.destinationViewController;
        }
#else
        DetailViewController *controller = (DetailViewController*)[[segue destinationViewController] topViewController];
#endif
        [controller setDetailItem:object];
        controller.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;
        controller.navigationItem.leftItemsSupplementBackButton = YES;
    }
}