使用storyboard到iOS 6的MGSplitViewController端口?

时间:2013-05-23 16:39:23

标签: ipad ios6 xcode4.5 uisplitviewcontroller

我正在尝试将我的应用程序从iphone升级到Universal。我有一个关键要求,即能够隐藏主视图并仅显示应用程序重要部分的详细信息(横向)。

所有道路都指向MGSplitViewController。

然而,自首次发布以来,它没有多少更新。用ARC编译它是直截了当的。但是我花了大部分时间来尝试了解如何从Xib过渡到Storyboard来获取此代码。

我是iOS的新手,我的经验仅适用于iOS 6& XCode 4.x.我的应用程序仅限iOS 6。

有没有人成功将MGSplitViewController移植到最新的iOS&的XCode?

如果能让它发挥作用,我会热衷于重新发布MGSplitViewController给其他遇到此问题的人。

到目前为止,我已经创建了一个带有UIViewController(子类化为MGSplitViewController)的故事板作为“初始视图控制器”。 导航控制器 - 表视图控制器支付为(子类到RootViewController) 另一个UIViewController(子类化为DetailViewController),带有工具栏,条形按钮等。

这三者之间没有任何区别。 App委托代码如下所示:

@synthesize window, splitViewController, detailViewController, rootNavigationController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Remove the status bar
    [[UIApplication sharedApplication] setStatusBarHidden:YES];

    // Override point for customization after application launch.
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];

        splitViewController = (MGSplitViewController *) self.window.rootViewController;

        rootNavigationController = [storyboard instantiateViewControllerWithIdentifier:@"masterNavigationController"];
        detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"detailViewController"];

        detailViewController.splitController = splitViewController;
        splitViewController.masterViewController = rootNavigationController.topViewController;
        splitViewController.detailViewController = detailViewController;
        splitViewController.delegate = detailViewController;

        [rootNavigationController.topViewController performSelector:@selector(selectFirstRow) withObject:nil afterDelay:0];
        [detailViewController performSelector:@selector(configureView) withObject:nil afterDelay:0];

        if (NO) { // whether to allow dragging the divider to move the split.
            splitViewController.splitWidth = 15.0; // make it wide enough to actually drag!
           splitViewController.allowsDraggingDivider = YES;
        }
    }
return YES;
}

我在这里走在正确的轨道上吗?

1 个答案:

答案 0 :(得分:1)

我最终不需要这个,所以没有完成到iOS 6的端口。 然而,为了节省其他人经历我努力的努力,我已经发布了一个链接到我的网站,您可以下载我的工作并继续工作。

Here's my effort at porting, use at your own risk!