以编程方式用UIToolbar替换UITabBar

时间:2012-12-02 20:39:43

标签: objective-c ios xcode ios6

我正在尝试编写一个标签式应用程序,其中每个选项卡都是一个导航控制器。此选项卡栏显示在导航控制器中的每个视图上,因为它是在每个视图上推断的。

我想用一个带有几个按钮的工具栏替换详细视图上的这个标签栏。

我在详细视图的viewDidLoad:method

中尝试了以下代码
self.navigationController.toolbarHidden = NO;
self.navigationController.toolbar.barStyle = UIBarStyleBlackTranslucent;

UIBarButtonItem *accept = [[UIBarButtonItem alloc] initWithTitle:@"Accept"
                                                               style:UIBarButtonItemStyleBordered
                                                              target:self
                                                              action:nil];

UIBarButtonItem *decline = [[UIBarButtonItem alloc] initWithTitle:@"Decline"
                                                               style:UIBarButtonItemStyleBordered
                                                              target:self
                                                               action:nil];
NSArray *items = [NSArray arrayWithObjects:accept, decline, nil];
[self.navigationController.toolbar setItems:items animated:YES];

// code suggested
[self.view addSubview:self.navigationController.toolbar];

它仍然没有显示出来。虽然现在隐藏了标签栏,但在显示详细视图的视图中添加了以下行: -

theDetailTableViewController.hidesBottomBarWhenPushed = YES;

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

无论您从哪里推送detailViewController,都要在详细视图中隐藏标签栏:

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
detailViewController.hidesBottomBarWhenPushed = YES;
[self.navigationController detailViewController animated:YES];

并在详细视图中,只需将ToolBar作为子视图添加到detailView。

答案 1 :(得分:0)

我通常在viewWillAppear或viewDidAppear方法中使用toolbarHidden = YES或NO(如果适用)。我不确定这是不是为什么它不适合你,但你需要在回到现场观点时解决。

如果你没有解决它,当你回去时,工具栏仍然可见。