我正在尝试将我的应用程序从 iphone 升级到 Universal。我有一个关键要求是能够隐藏主视图并仅显示应用程序重要部分的细节(横向)。
所有的道路都指向MGSplitViewController。
然而,自从它首次发布以来,它并没有太多更新。用 ARC 编译它是直截了当的。但是,我大部分时间都在尝试了解如何从 Xib 转换到 Storyboard 以获取此代码。
我是 iOS 新手,我的经验仅限于 iOS 6 和 XCode 4.x。我的应用程序仅适用于 iOS 6。
有没有人成功将 MGSplitViewController 移植到最新的 iOS 和 XCode?
如果我能让它工作,我很想为任何遇到此问题的人重新发布 MGSplitViewController。
到目前为止,我已经创建了一个带有 UIViewController(子类为 MGSplitViewController)作为“初始视图控制器”的故事板。导航控制器 - 表视图控制器支付为(子类到 RootViewController)另一个 UIViewController(子类到 DetailViewController),带有工具栏、栏按钮等。
这 3 个之间没有 segues。应用程序委托代码如下所示:
@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;
}
我在正确的轨道上吗?