【问题标题】:SWRevealViewController and Tab Bar Controller in detailSWRevealViewController 和 Tab Bar Controller 详解
【发布时间】:2016-12-20 15:46:34
【问题描述】:

这个问题之前已经被问过并得到了回答,我的问题不是唯一的,但肯定有一些缺失,因为我尝试过的所有结构都不起作用。我只是想在标签栏控制器的每个场景中实现 SWRevealViewController“菜单”按钮。

这是当前设置:

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

当按下菜单按钮时,什么也没有发生。

我已经解决这个问题好几天了,我相信它一定很简单,非常感谢帮助。

【问题讨论】:

标签: ios objective-c iphone uitabbarcontroller swrevealviewcontroller


【解决方案1】:

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

sw_front 和 SWRevealViewControllerSegueSetController 用于标签栏转场

侧边栏视图控制器 segue 的 sw_rear 和 SWRevealViewControllerSegueSetController

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-05
        • 1970-01-01
        • 1970-01-01
        • 2021-04-15
        相关资源
        最近更新 更多