splitViewController 的 barButtonItem 未显示在屏幕上?
Posted
技术标签:
【中文标题】splitViewController 的 barButtonItem 未显示在屏幕上?【英文标题】:barButtonItem for splitViewController not shown on screen? 【发布时间】:2011-09-09 17:14:55 【问题描述】:如何显示 SplitViewController 中的 barButtonItem?不是用 splitViewController 自动创建的吗?
我创建了一个针对 Ipad 的项目,我将我的 mainViewController 作为控制器视图以纵向模式显示在屏幕上,并且我创建了另一个带有它的 tableView 的 uiviewController“RootViewController”。
我把这两种方法:
- (void)splitViewController: (UISplitViewController*)svc willHideViewController:
- (void)splitViewController: (UISplitViewController*)svc willShowViewController:
在我的 mainViewController 中,例如:
// Called when rotating to a portrait orientation.
- (void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc
barButtonItem.title = @"Root List";
NSMutableArray *items = [[toolbar items] mutableCopy];
[items insertObject:barButtonItem atIndex:0];
[toolbar setItems:items animated:YES];
[items release];
self.mainPopoverController = pc;
(mainPopoverC...设置在.h文件中:
UIPopoverController *mainPopoverController;
)
但模拟只显示没有 barButtomItem 的 mainViewController 视图。
有什么想法吗?
非常感谢
【问题讨论】:
【参考方案1】:如果您的工具栏不包含任何项目,
[toolbar items]
为零,所以你的 mutableCopy 进入了深空......
【讨论】:
谢谢汤姆,是的,实际上同样的问题,我尝试了 chown 的代码,但工具栏似乎是空的:你通常会怎么做?我用 IB 设置了 splitVC,出现了 viewController,但没有出现工具栏……它不是通过我应该添加到代码中的任何方法自动添加的吗? 这是您自己设置的吗?我建议您尝试 SplitView 模板项目并检查差异。详细视图有一个工具栏,它不是自动创建的。 你是对的,工具栏已添加到屏幕...我没看到,谢谢,现在可以使用了!谢谢【参考方案2】:在willHideViewController
中尝试这样的事情:
UIBarButtonItem *menuButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Root List" style:UIBarButtonItemStyleBordered target:self action:@selector(showPopover:)];
NSMutableArray *items = [[NSMutableArray alloc] initWithArray:toolbar.items];
if ([items count])
[items insertObject:menuButtonItem atIndex:0];
[toolbar setItems:items];
[menuButtonItem release];
[items release];
【讨论】:
谢谢,是的,它确实是空的,至少它看起来是空的,因为屏幕上什么都没有出现。你平时会怎么做?我用 IB 设置了 splitVC,viewController 出现了,但没有工具栏... 确保你没有在- (void)viewWillAppear:(BOOL)animated
方法中做这样的事情:self.navigationController.navigationBar.hidden = YES;
或toolbar.hidden = YES;
。
好吧,我必须自己将工具栏放在视图上,这是我的错误。感谢您的帮助!以上是关于splitViewController 的 barButtonItem 未显示在屏幕上?的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController & SplitViewController
在 Tabbar 中添加 SplitViewController
使 splitViewController 的细节部分可滚动?