在UITabbarController内部使用UINavigationController

我正在尝试在UITabbarController中使用UINavigationController。

这是我的控制器结构

-UITabbarController(InitialView)
  -tabItemOne-DashboardController
    -SomeButtons with StoryboardSegue-To-DifferentViewController
  -tabItemTwo-OtherController
  -tabItemThree-OtherController

在UITabbarController内部使用UINavigationController

在UITabbarController内部使用UINavigationController

现在,我想在StoryboardSegue中执行某些DashboardViewController时显示返回按钮。 假设我打开应用程序,可以在UITabbarController上看到4个tabbarItem,在第一个tabbar item中,我有DashboardViewController,在此DashVC中,我有3 4个不同的按钮来显示其他视图控制器。到目前为止,一切正常。但是一旦DashVC的子ViewController出现在屏幕上,我想像UINavigationController一样在顶部显示一个后退按钮。

我尝试将UINavigationController放在UITabbarController之前,但未显示。我尝试做embed it in DashboardVC,但再次尝试做not showing

我需要在UINavigationController的{​​{1}}中分别嵌入childviewcontrollers吗?

感谢您的帮助。

gush5051 回答:在UITabbarController内部使用UINavigationController

enter image description here所以您需要的是这个

-UITabbarController(InitialView)
  -NavigationController -tabItemOne-DashboardController
    -SomeButtons with StoryboardSegue-To-DifferentViewController
  -tabItemTwo-OtherController
  -tabItemThree-OtherController

,在DashBoardController中,您需要在

中添加此代码。
override func viewWillAppear(_ animated: Bool) {
        self.navigationController?.navigationBar.isHidden = true
    }

    override func viewWillDisappear(_ animated: Bool) {
        self.navigationController?.navigationBar.isHidden = false
    }

此代码用于隐藏仪表板中的导航栏,并在按下另一个视图控制器时进行还原,因此不会隐藏您的后退按钮。 另外,如果您在其他视图控制器中需要相同的功能,则应该嵌入导航控制器中。

并非完全符合您的情况,但所有导航Controller都是UITabBarController的子级,即最初的viewController。

本文链接:https://www.f2er.com/2950074.html

大家都在问