我正在尝试在UITabbarController中使用UINavigationController。
这是我的控制器结构
-UITabbarController(InitialView)
-tabItemOne-DashboardController
-SomeButtons with StoryboardSegue-To-DifferentViewController
-tabItemTwo-OtherController
-tabItemThree-OtherController
现在,我想在
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
?任何帮助表示赞赏。
最佳答案
-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/