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?