【问题标题】:SWRevealViewController with TabBarControllerSWRevealViewController 和 TabBarController
【发布时间】:2016-11-19 16:33:47
【问题描述】:

我在我的项目中使用 SWRevealViewController。我的应用程序有 TabBarController。我这样做了,我打开了菜单。当我在菜单中选择时,它在没有 TabBarController 底部的情况下打开。我使用故事板。我的起始视图是带有 SWRevealViewController 类的 ViewController。我使用标识符 sw_rear 和类 SWRevealViewControllerSegueSetController 连接到我的菜单。在菜单之前我有导航控制器。我还使用标识符 sw_front 和类 SWRevealViewControllerSegueSequeController 将 SWRevealViewController 连接到我的 TabBar。我做错了什么?

在我的菜单中打开一个视图我有这个代码:

 BookTableViewController *m = [self.storyboard instantiateViewControllerWithIdentifier:@"Book"];
        [self.revealViewController pushFrontViewController:[[UINavigationController alloc] initWithRootViewController:m] animated:YES];
        [self.revealViewController setFrontViewPosition:FrontViewPositionLeft animated:YES];

【问题讨论】:

    标签: ios objective-c swrevealviewcontroller


    【解决方案1】:
        //Tabbar controller name on storyboard
         Tabbarcontroller *tabvc=(Tabbarcontroller *)[self.storyboard  instantiateViewControllerWithIdentifier:@"TabbarcontrollerVCId"];
         NSLog(@"tabvc controller ===>%@",tabvc.viewControllers);
    
         Select viewcontollers and pass index
         tabvc.selectedIndex=0;
    
        [self.revealViewController setFrontViewController:tabvc];
        [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
    

    【讨论】:

      【解决方案2】:

      据我了解,您希望前视图控制器成为标签栏和没有标签栏的菜单?

      所以有三个东西,前、后和右。如果您还没有查看 RevealControllerExample 中的 AppDelegate 并尝试执行以下操作,

      1. 创建标签栏的实例
      2. 创建 SWRevealViewController,初始化时 nil 作为后部,标签栏作为前部(如果你不能使用 nil 作为后部,只需创建一个 UIViewController,但你不会使用它)。
      3. 创建菜单视图控制器并将其分配给 SWRevealViewController 的 rightViewController 属性

      如果这不能解决您的问题,请发表评论,祝您好运。

      【讨论】:

      • 我的问题是当我在菜单中选择并打开它时。它打开时没有 TabBar 底部。
      • 你的菜单视图控制器需要有标签栏吗?如果是这样,那么只需将标签栏分配给 rightViewController。您需要菜单中的每个选项来加载标签栏吗?
      • 菜单不需要标签栏。菜单中的其他选项(viewcontroller 或 tableviewcontroller)必须加载标签栏底部。
      • 我通过将 tableviewcontroller 更改为 viewcontroller 并手动添加标签栏控制器解决了一个问题,但我的项目中有很多控制器。
      • 是的,如果您的所有选项视图控制器不同,您需要将标签栏添加到所有选项视图控制器中,如果您只需要一个表格视图,您可以使用表格视图控制器,否则如果您需要任何其他内容,例如标签栏或进度指示您应该使用视图控制器并添加表格视图。
      猜你喜欢
      • 2014-06-30
      • 2017-08-06
      • 2016-04-04
      • 2016-06-23
      • 2020-06-29
      • 2018-05-01
      • 2014-07-17
      • 2016-03-10
      相关资源
      最近更新 更多