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

时间:2020-08-14 16:31:14

标签: swift navigationbar tabbarcontroller rootviewcontroller

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

1 个答案:

答案 0 :(得分:0)

如果要在视图控制器上显示导航栏,请使用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)
}

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

相关问题