如何在具有自定义选项卡 UI(不使用选项卡栏)的 UITabBarController 中删除“更多”选项卡
Posted
技术标签:
【中文标题】如何在具有自定义选项卡 UI(不使用选项卡栏)的 UITabBarController 中删除“更多”选项卡【英文标题】:How to remove "More" tab in UITabBarController that has custom tab UI (not using tab bar) 【发布时间】:2018-08-11 14:24:28 【问题描述】:我使用UITabBarController
作为支持来呈现多个视图控制器,但我没有使用底部的默认选项卡栏让用户点击选项卡。相反,我从左侧展示了一个滑出式菜单,该菜单在表格视图中显示选项卡列表。因此,用户可以点击表格视图中的一个单元格并切换到该选项卡。这是在不使用UITabBarController
底部的标签栏的情况下显示多个视图控制器标签的非常常见的范例。
现在我添加了更多选项卡,我的一个选项卡打开到 UITabBarController 的“更多”控制器时遇到了问题。我不需要或不想要这个“更多”控制器,因为我在可滚动列表中显示我的选项卡,而不是在空间有限的选项卡栏中。
如何删除“更多”标签或告诉我的UITabBarController
不要显示“更多”屏幕?是否有一些选项可以禁用此功能?
【问题讨论】:
您不应将 UITabBarController 与汉堡菜单一起使用。在 ios 上没有开箱即用的解决方案,因此您应该创建自己的自定义 UIViewController 来处理此滑动视图并使用子视图控制器显示正确的控制器。你也可以找一个库,GitHub上有很多。 【参考方案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;
【讨论】:
以上是关于如何在具有自定义选项卡 UI(不使用选项卡栏)的 UITabBarController 中删除“更多”选项卡的主要内容,如果未能解决你的问题,请参考以下文章
如何从 UICollectionView 单元中引用选项卡栏控制器