SWRevealViewController和Tab Bar Controller详细

时间:2016-08-14 00:23:51

标签: ios objective-c iphone uitabbarcontroller swrevealviewcontroller

这个问题之前已经被问过并且已经被回答了,我的问题并不是唯一的,但是由于我尝试过的任何结构都不起作用,所以必须有一些缺失。我只是想尝试实现SWRevealViewController"菜单"标签栏控制器的每个场景中的按钮。

这是当前的设置:

enter image description here

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并声明菜单按钮。

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

我已经讨论过这个问题好几天了,我确信它一定很简单,真的很感激。

3 个答案:

答案 0 :(得分:2)

我认为你忘了侧面菜单segue的sw_rear。这两个截图可以帮助你

用于tabbar segue的sw_front和SWRevealViewControllerSegueSetController front

用于侧边栏视图控制器segue的

sw_rear和SWRevealViewControllerSegueSetController

rear

最后这是一个带有SWRevealViewController的tabbar示例,我确实看过这个截图。

enter image description here

答案 1 :(得分:0)

您可以使用以下代码片段,也可以使用UITabBarController作为根视图

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

答案 2 :(得分:0)

在Swift 4中带有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)