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

这是我的控制器结构

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


ios - 在UITabbarController中使用UINavigationController-LMLPHP

ios - 在UITabbarController中使用UINavigationController-LMLPHP

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

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

我是否需要在UINavigationController的每个childViewControllers中嵌入单独的DashboardVC

任何帮助表示赞赏。

最佳答案

ios - 在UITabbarController中使用UINavigationController-LMLPHP所以您需要的是

-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。

关于ios - 在UITabbarController中使用UINavigationController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59265542/

10-12 20:47