如何打开从SlideMenuViewController实例化的ViewControllers中的TabBarController
我想在所有ViewControllers中都有tabBar。我已经实现了SWRevealViewController,它有两个视图控制器,一个是TabBarController,另一个是TableViewController,我希望在TableViewController的所有ViewController中都有相同的TabBar。如何打开从SlideMenuViewController实例化的ViewControllers中的TabBarController
这应该不是太困难。您的RevealViewController
(您的故事板的初始控制器)已经似乎是SWRevealViewController
的子类。这很好,但这种情况本质上不是必需的。你需要的是一个UIViewController
你的侧面菜单的实施。故事板本身不会。
此外,我不会在这里使用segues来切换标签,因为segue有一个目标视图控制器。因此,每次执行segue时,都会创建目标视图控制器的新实例。我宁愿实现一个UIViewController
,处理的UITableView
小区选择现在让我们假设你创建一个UIViewController
或UITableViewController
为您的菜单(实际上是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
和设置的TableViewController
delegate
和TabBarController
至SWRevealViewController
。现在,第一次让我们说你打开TableViewController
,当任何电池接头,然后只需调用delegate
方法,它应该执行内部SWRevealViewController
类,然后执行segue
该类应该打开TabBarController
,当点击TabBarController
back button
内再次调用delegate
方法它应该在SWRevealViewController
类中执行并执行segue
来打开TableViewController
您需要使用UITabBar实现BaseClass viewController,然后从BaseClass继承所有其他控制器。编程方式没有这个类的笔尖或故事板 –
我想用它作为TableViewController中的委托,并在MainTabBarController中回调,然后我显示传递给MainTabBarComtroller的ViewController。 – AsimRazaKhan
因此它可以正常工作。你想要tabbar控制器还是只使用侧面菜单控制器? –