splitViewController的barButtonItem未显示在屏幕上?

时间:2011-09-09 17:14:56

标签: objective-c uisplitviewcontroller uibarbuttonitem

如何显示SplitViewController中的barButtonItem?不是使用splitViewController自动创建的?

我创建了一个针对Ipad的projet,我把我的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视图。

有什么想法吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

如果您的工具栏中没有商品,

[toolbar items]

是零,所以你的mutableCopy会进入深空......

答案 1 :(得分:1)

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];