在使用hidesBottomBarWhenPushed进行推送动画期间,工具栏的位置不正确

Tho*_*ler 5 xcode storyboard ios

我有一个使用标签栏进行基本导航的应用。从选项卡的一个屏幕中,我要输入另一个显示工具栏的屏幕,而不是选项卡和顶部的向后导航项。

做这个的最好方式是什么?如果我使用“在推送时隐藏底部栏”(又名hidesBottomBarWhenPushed)并将工具栏添加到屏幕上,则可以看到动画,在将工具栏放置在屏幕底部之前,它已删除了标签栏。

Gre*_*reg 4

带工具栏的解决方案UITableViewController(需要代码)

使用此答案中的代码,我能够实现相同的效果,但工具栏位于表格视图的底部。

将其添加到您的表视图控制器中:

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

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self.navigationController setToolbarHidden:YES animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

重要提示:将这些调用放入viewWillAppearandviewWillDisappear而不是viewDidLoad使得这更容易处理,因为即使对于同一视图控制器的多次推送和弹出,它也能可靠地工作,并且您不必在之前的视图控制器中进行清理。

并在情节提要中像这样配置:

另外,为被推送的视图控制器启用在故事板或代码中推送时隐藏底部栏。

然后,您可以将工具栏按钮添加到情节提要中的工具栏。

构建并运行,你会得到这样的效果:

在此输入图像描述

这是一个完整的示例项目,演示了这一点