如何在侧面菜单中选择菜单项时底部有TabBarController?

时间:2017-09-21 12:30:38

标签: ios swift swrevealviewcontroller tabbarcontroller

我正在使用SWRevealController来创建侧边菜单。在我的应用程序中,它还有UITabBarcontroller。 我的连接格式为SWRevealViewController ---> UItabbarController ---> NavigationController ---> UITabbaritemPage - >另一个vc

PLEASE CLICK ON THE IMAGE TO SEE IN CORRECT ORIENTATION

上面的节目是我正在使用的布局。我希望在tabbarcontroller中显示的几乎所有vc中都有汉堡按钮(菜单按钮)。目前我点击按钮时会显示侧边菜单(图像右侧显示为图像)。在选择菜单时,它会显示所需的vc但是,底部的标签栏不在那里。我希望整个页面中的底部标签栏也位于侧边菜单的页面中。

我怎样才能实现这一目标?请帮帮我。

我在didSelectRowAtIndexPath中使用的代码是:

if indexPath.row == 1{
let destinationVc = self.storyboard?.instantiateViewController(withIdentifier: "Home")
let newFrontVc = UINavigationController.init(rootViewController:destinationVc!)
revealViewController.pushFrontViewController(newFrontVc, animated: true)

}

3 个答案:

答案 0 :(得分:0)

我认为如果使用标签栏控制器,你实际上不需要推动视图控制器。

let tabBarController = self.storyboard?.instantiateViewController(withIdentifier: "TabBarController")
tabBarController.selectedIndex = 1
revealViewController.pushFrontViewController(tabBarController, animated: true)

您需要在TabBarController中将标签栏控制器的标识符设置为Main.storyboard才能生效。

答案 1 :(得分:0)

我也有相同的布局,就像你只在标签栏中添加了几个视图控制器一样,它会在所有视图控制器中显示标签栏

enter image description here

答案 2 :(得分:0)

在Swift 4中使用XIB的带有TabBarController的SWRevealViewController

let objSideBarVC = SideBarVC(nibName: "SideBarVC", bundle: nil)
let navSidebar = UINavigationController(rootViewController: objSideBarVC)
 navSidebar.navigationBar.isHidden = true

let objDashboardVC = DashboardVC(nibName: "DashboardVC", bundle: nil)
let navDashboard = UINavigationController(rootViewController: objDashboardVC)
navDashboard.navigationBar.isHidden = true

let mainRevealController = SWRevealViewController.init(rearViewController: navSidebar,frontViewController: navDashboard)

AppDelegate().window?.rootViewController = mainRevealController
mainRevealController.pushFrontViewController(TabBarController, animated: true)