gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 03:32:26 25 4
gpt4 key购买 nike

我有一个简单的 iPad 应用程序,其中包含带 TableView 的 MasterviewController 和包含 UIWebView 的 DetailViewController。然后我在 Storyboard中拖放了一个 SplitViewController,将它与我的主 Controller 和细节 Controller 连接起来。在 MasterViewController 中,我使用以下内容:

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

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

目前看起来像下面这样:

enter image description here

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

我发现了一些与此问题相关的问题,但他们并没有像我那样简单地创建 SplitView,只需将它拖到 Storyboard 中并编写几行代码,所以不要将其标记为重复或类似的东西.

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

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

最佳答案

我在主视图 Controller (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];
}

我在细节 Controller 中添加了一个IB中的工具栏,并给它IBOutlet,toolBar。

关于ios - UISplitViewController 在 Storyboard中隐藏/取消隐藏 MasterView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16246519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com