如何打开从SlideMenuViewController实例化的ViewControllers中的TabBarController

问题描述:

我想在所有ViewControllers中都有tabBar。我已经实现了SWRevealViewController,它有两个视图控制器,一个是TabBarController,另一个是TableViewController,我希望在TableViewController的所有ViewController中都有相同的TabBar。如何打开从SlideMenuViewController实例化的ViewControllers中的TabBarController

enter image description here

+0

您需要使用UITabBar实现BaseClass viewController,然后从BaseClass继承所有其他控制器。编程方式没有这个类的笔尖或故事板 –

+0

我想用它作为TableViewController中的委托,并在MainTabBarController中回调,然后我显示传递给MainTabBarComtroller的ViewController。 – AsimRazaKhan

+0

因此它可以正常工作。你想要tabbar控制器还是只使用侧面菜单控制器? –

这应该不是太困难。您的RevealViewController(您的故事板的初始控制器)已经似乎是SWRevealViewController的子类。这很好,但这种情况本质上不是必需的。你需要的是一个UIViewController你的侧面菜单的实施。故事板本身不会。

此外,我不会在这里使用segues来切换标签,因为segue有一个目标视图控制器。因此,每次执行segue时,都会创建目标视图控制器的新实例。我宁愿实现一个UIViewController,处理的UITableView

小区选择现在让我们假设你创建一个UIViewControllerUITableViewController为您的菜单(实际上是RearViewController)。请务必将此课程分配到故事板中的UITableViewController

class MenuViewController: UITableViewController { 
    // MARK: UITableViewDelegate 
    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     let tabIndex = indexPath.row 
     let tabbarVC = (revealViewController().frontViewController as! UITabBarController) 

     tabbarVC.selectedIndex = tabIndex // this assumes the menu items are in the same order as the tabs. if not you need to adjust this 

     revealViewController().revealToggle(animated: true) // close the side menu after switching tabs 
    } 
} 

这应该是所有你需要

我想拥有的TabBar在我所有的ViewControllers。我已经实现了 SWRevealViewController,它有两个视图控制器链接一个 是TabBarController和另一个是TableViewController我想 在我的所有ViewControllers中从 TableViewController segular相同tabBar。

你可以做一些这样的调整,创建custom delegate和设置的TableViewControllerdelegateTabBarControllerSWRevealViewController。现在,第一次让我们说你打开TableViewController,当任何电池接头,然后只需调用delegate方法,它应该执行内部SWRevealViewController类,然后执行segue该类应该打开TabBarController,当点击TabBarControllerback button内再次调用delegate方法它应该在SWRevealViewController类中执行并执行segue来打开TableViewController