在选项卡控制器中推送视图控制器时显示工具栏

4

我有一个在选项卡控制器中的导航控制器。当我推送一个新的视图控制器时,我想显示工具栏。我从被推送的视图控制器中这样做:

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

能否发布足够的代码以重现问题? - Shoaib
这是一个可行的答案:https://dev59.com/aG035IYBdhLWcg3wE7xr#23269013 - Alistra
4个回答

2
将您的导航控制器嵌入选项卡栏控制器中,而不是相反。因此,选项卡栏将具有导航栏作为其视图控制器之一。请保留HTML标签。

这是我现在拥有的。我添加了更多信息。 - Berry Blue

2
请确保在故事板中,所有的视图控制器都未勾选“隐藏底部栏”属性。
请参考下图:enter image description here

2

您是否尝试过destinationVC.hidesBottomBarWhenPushed = YES;

苹果文档


谢谢您的回复。这确实可以去掉动画,但我想要同时显示选项卡栏和工具栏。 - Berry Blue

2

[self.navigationController setToolbarHidden:NO animated:NO];viewWillAppear移动到viewDidLoad,应该可以解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接