1

我正在尝试编写一个选项卡式应用程序,其中每个选项卡都是一个导航控制器。该选项卡栏出现在导航控制器中的每个视图中,因为它在每个视图中被推断出来。

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

我在该详细视图的 viewDidLoad: 方法中尝试了以下代码

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;

我错过了什么吗?

4

2 回答 2

0

无论您从何处推送您的 detailViewController,执行此操作以在详细视图中隐藏选项卡栏:

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

在您的详细视图中,只需将工具栏作为子视图添加到详细视图。

于 2012-12-02T20:43:20.303 回答
0

我通常在 viewWillAppear 或 viewDidAppear 方法中放置 toolbarHidden = YES 或 NO(如果适用)。我不确定这是否是它对您不起作用的原因,但无论如何您需要在返回呈现视图时解决。

如果你不解决它,当你返回时工具栏仍然可见。

于 2012-12-02T22:52:45.637 回答