在标签栏控制器的推送视图控制器中显示工具栏

Posted

技术标签:

【中文标题】在标签栏控制器的推送视图控制器中显示工具栏【英文标题】:Showing a toolbar in pushed view controller in tab bar controller 【发布时间】:2016-03-13 23:51:59 【问题描述】:

我在标签栏控制器中有一个导航控制器。当我推送一个新的视图控制器时,我想显示工具栏。我正在从推送的视图控制器中这样做。

- (void)viewWillAppear:(BOOL)animated

    [super viewWillAppear:animated];
    [self.navigationController setToolbarHidden:NO animated:NO];

这可行,但工具栏从标签栏上方的正常位置向上滑动。我希望它在标签栏上方没有这个“向上滑动”动画的情况下出现。这可能吗?

这是我的设置。从视图控制器 1 推送到视图控制器 2 时会出现“向上滑动”动画。我只希望工具栏出现在视图控制器 2 中。

[Tab Bar Controller]
  - [Navigation Controller]
     - [View Controller 1] -> Push -> [View Controller 2]

【问题讨论】:

能否发布足够的代码来重现该问题? ***.com/a/23269013/384309 这是一个有效的答案 【参考方案1】:

将导航控制器嵌入到标签栏控制器中,而不是相反。

因此标签栏将导航栏作为其视图控制器之一

【讨论】:

这就是我现在所拥有的。我添加了更多信息。【参考方案2】:

你试过destinationVC.hidesBottomBarWhenPushed = YES;吗?

Apple docs

【讨论】:

感谢您的回复。这确实可以删除动画,但我希望标签栏和工具栏都可见。【参考方案3】:

确保在情节提要中所有视图控制器都未选中“隐藏底栏”属性

【讨论】:

【参考方案4】:

[self.navigationController setToolbarHidden:NO animated:NO];viewWillAppear移动到viewDidload应该可以工作。

【讨论】:

以上是关于在标签栏控制器的推送视图控制器中显示工具栏的主要内容,如果未能解决你的问题,请参考以下文章

如何正确地动画推送带有透明导航栏和工具栏的视图控制器?

标签栏控制器显示最后推送的控制器 - swift 4

隐藏 uitoolbar 在视图和标签栏之间留下空隙

在标签栏应用程序上从 UITableView 推送新的视图控制器

推送视图控制器未出现在标签栏控制器下方

隐藏标签栏并在该位置添加工具栏