如何从第一个UITabBarController视图中删除导航栏?

问题描述

我有一个具有登录和注册屏幕的应用程序,当点击“登录”按钮或“注册”按钮时,它们将推到tabbarcontroller。但是,一旦标签栏加载,第一个屏幕顶部就会有一个导航栏。如果使用底部导航栏选择下一个屏幕,则导航栏将消失,并且所有屏幕都是相同的。如果再回到第一个屏幕,则顶部的导航栏不存在。我已为在所有视图上隐藏的导航栏编写了代码,但仍使用后退按钮显示该代码。我设法删除了后退按钮,因为通过单击它,它可以返回到登录和注册屏幕。我尝试将根视图控制器更改为UITabBarController,但是第一个屏幕上的导航栏在那里,当我导航到下一个屏幕并返回时,顶部导航栏消失了。很长时间以来一直试图将其删除,但无法弄清楚该如何做。抱歉,这是一个简单容易的问题。

解决方法

如果要在视图控制器上显示导航栏,请使用ViewWillAppear方法:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.setNavigationBarHidden(false,animated: true)
}

要在按下另一个视图控制器后隐藏该导航栏,只需将其隐藏即可:

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    self.navigationController?.setNavigationBarHidden(true,animated: true)
}

如果它能按预期工作,请在此处发表评论。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...