8

我有一个故事板 iOS 应用程序,其中包含许多我推送的视图。我有一个 UINavigationController 选择了“显示工具栏”选项,然后填充整个视图层次结构。

假设我的视图流是 3 个视图,A、B 和 C:

View A --(push)--> View B --(push)--> View C

View A 是一个普通的 View Controller,工具栏上有一个按钮用来推送 View B。 View B 是一个表格控制器,所以我想在这里隐藏工具栏。视图 C 是与视图 A 类似的另一个视图,需要显示工具栏。

在 Xcode/Storyboard 中,如果在 View BI 中选择“Hides bottom bar on push”,它确实会这样做 - View B 的底栏是隐藏的。同样,如果我为“Bottom bar”选择选项选择“None”,则没有View B 的酒吧。很好。

这是我的问题:无论我做什么,使用视图 B 的任一选项,我的工具栏都不会返回视图 C。如果我将视图 C 的工具栏设置为推断(并取消选中推送时隐藏),它不会显示,也不会显示如果我手动将其设置为“工具栏”。

有任何想法吗?

4

2 回答 2

17

正如@Zoltán 所说,Storyboard 没有提供完整的答案。

在 viewDidLoad 或 viewWillAppear 上设置 self.navigationController.toolbarHidden = YES/NO 是可行的,但很难看(在视图转换动画期间,工具栏出现一个黑色矩形)。

这是我为 View B 控制器(以及 View C 的反面)所做的,以模仿情节提要中“hide on push”选项的动画平滑度:

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setToolbarHidden:YES animated:YES];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [self.navigationController setToolbarHidden:NO animated:YES];
}
于 2012-08-07T07:14:26.937 回答
2

我不认为你可以纯粹在故事板中做到这一点。但是,您可以将其设置为始终显示,为您希望它出现的每个视图放置按钮,然后您可以调用 self.navigationController.toolbarHidden = YES; 当加载视图控制器时,您不希望工具栏出现。之后,如果出现另一个您确实需要工具栏的 VC,只需将 toolbarHidden 设置为 NO。

于 2012-08-07T06:53:57.587 回答