如何在具有自定义标签UI的UITabBarController中删除“更多”标签(不使用标签栏)

时间:2018-08-11 14:24:28

标签: swift uitabbarcontroller

我使用UITabBarController作为支持来显示多个视图控制器,但是我没有使用底部的默认选项卡栏供用户点击选项卡。取而代之的是,我从左侧显示了一个滑出菜单,它在表格视图中显示选项卡列表。因此,用户可以点击表视图中的单元格之一并切换到该选项卡。这是显示多个视图控制器选项卡而不使用UITabBarController底部的选项卡栏的非常常见的范例。

现在我添加了更多选项卡,但我的一个选项卡无法打开到UITabBarController的“更多”控制器时,出现了问题。我不需要或不需要此“更多”控制器,因为我将标签显示在可滚动列表中,而不是显示在空间有限的标签栏中。

如何删除“更多”标签或告诉UITabBarController不要显示“更多”屏幕?有禁用此功能的选项吗?

1 个答案:

答案 0 :(得分:1)

一种解决方法:找到隐藏更多导航栏的正确时机。将这些代码添加到UITabBarController的子类中:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    if (self.viewControllers.count > 5)
    {
        self.moreNavigationController.delegate = self;
    }
}

在导航委托回调中:

- (void)navigationController:(UINavigationController *)navigationController
  willShowViewController:(UIViewController *)viewController
                animated:(BOOL)animated

{
   navigationController.navigationBarHidden = YES;
}