详细介绍 SWRevealViewController 和 Tab Bar Controller

SWRevealViewController and Tab Bar Controller in detail

这个问题之前有人问过,也有人回答过,我的问题不是唯一的,但肯定有一些遗漏,因为 none 我试过的结构是有效的。我只是想在标签栏控制器的每个场景中实现 SWRevealViewController "menu" 按钮。

这是当前设置:

Textwise:SWRevealViewController -> 显示视图控制器设置控制器 (sw_front) -> 导航控制器 -> 根视图控制器 (segue) -> 标签栏控制器 -> 导航控制器 -> 场景

SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController )
{
    [self.sidebarButton setTarget: self.revealViewController];
    [self.sidebarButton setAction: @selector( revealToggle: )];
    [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}

这段代码在每个场景的viewDidLoad方法中,SWRevealViewController.h被引入,声明了菜单按钮。

按下菜单按钮时没有任何反应。

我已经研究这个问题好几天了,我相信它一定很简单,如果能提供帮助,我们将不胜感激。

我想你忘记了 sw_rear 侧边菜单 segue 。这 2 个屏幕截图可以帮助您

sw_front 和 SWRevealViewControllerSegueSetController 用于 tabbar segue

sw_rear 和侧边栏的 SWRevealViewControllerSegueSetController viewcontroller segue

最后这是带有 SWRevealViewController 的标签栏示例,我确实看过这张截图。

你可以使用下面的代码片段或者你可以使用 UITabBarController 作为根视图

UITabBarController *tab = [storyboard instantiateViewControllerWithIdentifier:@"Controller"];        
               [self.revealViewController setFrontViewController:tab];
                [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];

SWRevealViewController 与 TabBarController 在 Swift 4

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)