如何在具有自定义选项卡 UI 的 UITabBarController 中删除"More"选项卡(不使用选项卡栏)



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

现在我已经添加了更多选项卡,我的一个选项卡打开到 UITabBarController 的"更多"控制器时遇到了问题。我不需要也不想要这个"更多"控制器,因为我在可滚动列表中显示我的选项卡,而不是在空间有限的选项卡栏中。

如何删除"更多"选项卡或告诉我的UITabBarController不要显示"更多"屏幕?是否有一些选项可以禁用此功能?

解决方法:找到隐藏更多导航栏的正确时机。将这些代码添加到 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;
}

相关内容

最新更新