【问题标题】:hide tabbarcontroller隐藏标签栏控制器
【发布时间】:2011-10-19 08:31:26
【问题描述】:

我有一个带有多个选项卡的 UITabBarController。当我推送一个作为画廊的 viewController 时,我使用 self.hidesBottomBarWhenPushed = YES 隐藏标签栏,但我需要从这个画廊导航到另一个视图控制器,并且应该显示标签栏控制器。

我通过在推送新视图控制器之前在库中设置 self.hidesBottomBarWhenPushed = NO 来完成此操作。问题是当我回到画廊时,标签栏控制器是可见的。我怎样才能再次为画廊隐藏它?

【问题讨论】:

  • 你在哪里写隐藏标签栏代码的代码?
  • 您不能将它隐藏在基本/根控制器上。在其中创建一个虚拟视图控制器,创建基本视图控制器的对象并设置 hidebottombarwhenpushed = YES;并推送视图控制器。
  • @Stark 在画廊的初始化中以及在我推送新控制器之前

标签: iphone objective-c ios uitabbarcontroller


【解决方案1】:

-(void) viewWillAppear方法中,添加这一行来隐藏标签栏:

 [[[self navigationController] tabBarController] tabBar].hidden = YES;

【讨论】:

  • ... 或者可能在 viewWillAppear 中,因为 OP 确实提到了第二次显示视图时标签栏没有隐藏。
  • 这隐藏了它,但问题是我应该有标签栏的地方还有一大块空间,它实际上并没有隐藏它,它只是让它不可见。我需要'暂时删除它'
  • 将 self.wantsFullScreenLayout = YES;在 viewController 中解决了吗?
  • 我想你可以通过手动设置来强制它,使用类似:self.view.frame = CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>+tabbarHeight);
【解决方案2】:

您可以在适当的视图委托方法 viewWillAppear 中添加显示和隐藏代码

【讨论】:

    【解决方案3】:

    我想当您返回画廊并加载它时,您可以将 MyTabBarController.view.hidden 属性设置为 YES。

    【讨论】:

    • 这隐藏了整个视图 [[self navigationController] tabBarController].view.hidden = YES;
    猜你喜欢
    • 2015-02-13
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多