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



我想创建一个使用 UISplitViewController 的应用程序。我正在使用xcode 6 + ios 8.1 SDk。我创建了示例应用程序,该应用程序在iOS 8(iPhone 5,iPhone 6 +,iPad(上运行良好,但在iOS 7上失败。有没有人帮助我通过同时支持 iOS 7 和 iOS 8 来实现此功能。(我使用的是语言目标 C(

您实际上可以在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;
    }
}

最新更新