在UITabbarController内部使用UINavigationController

问题描述 投票:0回答:1

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

这是我的控制器结构

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

storyboardScreenShot

enter image description here

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

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

我需要在UINavigationControllerchildViewControllers中分别嵌入DashboardVC吗?

感谢您的帮助。

ios xcode uinavigationcontroller uitabbarcontroller swift4.2
1个回答
0
投票

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。

© www.soinside.com 2019 - 2024. All rights reserved.