UISplitViewController在Storyboard中隐藏/取消隐藏MasterView

我有一个简单的iPad应用程序与MasterviewController的tableview和一个DetailViewController包含一个UIWebView。 然后我拖放一个SplitViewController在我的Storyboard中,连接到我的Master和Detail控制器。 在MasterViewController我使用以下内容:

- (void) awakeFromNib { self.splitViewController.delegate = self; } - (BOOL) splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { return NO; } 

目前看起来如下所示:

在这里输入图像说明

一切都很好。 我想要做的就是隐藏和取消隐藏MasterViewController与左侧的DetailViewController,就像iPad的邮件应用程序button。

我发现了一些与这个问题有关的问题,但是他们并没有像创buildSplitView一样简单地将它拖到Storyboard中,而是写了几行代码,所以不要将其标记为重复或类似的东西。

注意:请不要build议使用MGSplitViewController或任何其他第三方库。 提前致谢。

MasterViewControllerembedded在导航控制器中。 虽然DetailViewController手动添加了一个顶部栏,因为在SplitView中添加了全部内容时,顶部栏会松动顶部的导航栏。 我知道的是,我可以在DetailView的顶部栏创build一个IBActionbutton,但不知道如何触发隐藏和取消隐藏function。

我在主视图控制器(TableController)中这样做:

 #import "TableController.h" #import "ViewController.h" @interface TableController () @property (strong, nonatomic) NSArray * theData; @property (strong, nonatomic) UIViewController * detailVC; @end @implementation TableController -(void)awakeFromNib { self.splitViewController.delegate = self; self.detailVC = self.splitViewController.viewControllers[1]; } -(void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem { NSMutableArray *itemArray = [self.detailVC.toolBar.items mutableCopy]; [itemArray removeObject:barButtonItem]; [self.detailVC.toolBar setItems:itemArray]; } -(void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc { barButtonItem.title = @"Master"; NSMutableArray *itemArray = [self.detailVC.toolBar.items mutableCopy]; if (! itemArray) { itemArray = [NSMutableArray arrayWithObject:barButtonItem]; }else{ [itemArray insertObject:barButtonItem atIndex:0]; } [self.detailVC.toolBar setItems:itemArray]; } 

我在IB中添加了一个工具栏到详细控制器,并给它IBOutlet,toolBar。