【问题标题】:Known effort to update MGSplitViewController for iOS5 and Storyboards?为 iOS5 和 Storyboard 更新 MGSplitViewController 的已知努力?
【发布时间】:2012-05-29 02:18:34
【问题描述】:

我正在开发一个需要隐藏/显示拆分视图的主控制器的 iPad 应用程序。

相关的 SO 答案请注意 Matt Gemmell 的 MGSplitViewController

MGSplitViewController 将是完美的 - 甚至提供一种调整主视图与细节视图比例的方法。

太棒了!除了它与使用故事板和 ARC 的最新 Xcode 不兼容。

我看到一个拉取请求(从 9 个月前开始)转换为 ARC for iOS4,但这仍然需要一些工作才能使故事板友好。

有谁知道正在努力更新这个开源的宝石以在最新的 iOS 开发环境中正常运行?

否则,如何将其集成到 Xcode 故事板/iOS5 项目中的示例/教程将非常有用。

【问题讨论】:

    标签: ios ipad storyboard uisplitviewcontroller


    【解决方案1】:

    看起来如果你等待的时间足够长,每一个好的包裹都会得到应有的关注。

    再次感谢 Matt Gemmell 提供的出色包裹,并感谢 Heath Borders 采取主动。

    Heath Borders port to iOS 5.1

    【讨论】:

    • 我一直在寻找完全相同的东西,我可能在这里遗漏了一些东西,但是我看不到 Heath 的最新提交如何与 iOS5 兼容?例如,它仍然包含 ARC 的各种问题。
    • @AustinRathe 是“master2”分支吗?在我发布问题时,我什至找不到任何人在研究它。我还有一些功能可以取消我的“必备”列表,然后我将开始集成 MGSplitViewController 以实现可移动的主/细节分隔器(这就是为什么我还没有接受这个问题的答案)。
    • 是的,就是这个。我有一个剧本,并让它与 ARC 一起工作(在某些时候会做 git 的事情),但它仍然不能很好地与 Storyboards 一起玩。
    • @AustinRathe 所以,你已经解决了所有与 ARC 相关的问题,但只是从 Xcode 中连接起来仍然是个问题?
    • 是的。我有一个使用 ARC 在新项目中工作的示例,但它全部来自 xib 文件。
    【解决方案2】:

    我能够解决故事板问题。我有一个带有主细节情节提要设置的通用应用程序,因此我将它们全部保留并更改了应用程序的初始化以不使用情节提要,而是以编程方式在我的 applicationDidFinishLaunching 中进行设置,如下所示:

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
    
        self.masterController = [storyboard instantiateViewControllerWithIdentifier:@"masterController"];
        self.detailController = [storyboard instantiateViewControllerWithIdentifier:@"detailController"];
    
        self.splitViewController = [[MGSplitViewController alloc] init];
        self.splitViewController.masterViewController = self.masterController;
        self.splitViewController.detailViewController = self.detailController;
        ACALandingVC* landingVC = [self.detailController.childViewControllers objectAtIndex:0];
        landingVC.splitController = self.splitViewController;
        self.splitViewController.delegate = landingVC;
    
        //self.splitViewController.splitWidth = 5;
        self.splitViewController.allowsDraggingDivider = YES;
        self.splitViewController.dividerStyle = MGSplitViewDividerStylePaneSplitter;
        self.splitViewController.splitPosition = 350;
        self.splitViewController.splitWidth = 10;
    
    
        self.window.rootViewController = self.splitViewController;
    }
    else {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
        UITabBarController* firstVC = [storyboard instantiateInitialViewController];
        self.window.rootViewController = firstVC;
        [[UINavigationBar appearance] setTintColor:[UIColor lightGrayColor]];
    }
    
    [self.window makeKeyAndVisible];
    

    我的 AppDelegate.h 看起来像:

    @class MGSplitViewController;
    
    @interface ACAAppDelegate : UIResponder <UIApplicationDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    @property (nonatomic, strong) MGSplitViewController* splitViewController;
    @property (nonatomic, strong) UITabBarController* masterController;
    @property (nonatomic, strong) UINavigationController* detailController;
    
    @end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2021-06-15
      • 1970-01-01
      相关资源
      最近更新 更多