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

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

- (void) awakeFromNib
{
    self.splitViewController.delegate = self;
}

- (BOOL) splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
    return NO;
}

它目前看起来如下所示:

在这里输入图像描述

一切都很好。 我想要做的就是使用DetailViewController左上角的按钮来隐藏和取消隐藏MasterViewController,就像iPad邮件应用程序一样。

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

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

MasterViewController嵌入在导航控制器中。 虽然DetailViewController手动添加了一个顶部栏,因为在SplitView中添加了所有内容时,顶部栏会丢失顶部的导航栏。 我知道的是,我可以在DetailView的顶部栏上创建一个IBAction按钮,但不知道如何触发隐藏和取消隐藏功能。


我在主视图控制器(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。

链接地址: http://www.djcxy.com/p/71185.html

上一篇: UISplitViewController Hide/Unhide MasterView In Storyboard

下一篇: How can I extract data from DAT and IDX files of SCADA CIMPLICITY software?