如何将“更多”按钮添加到标签栏?

Posted

技术标签:

【中文标题】如何将“更多”按钮添加到标签栏?【英文标题】:How to add "more" button to Tab Bar? 【发布时间】:2010-01-12 04:18:43 【问题描述】:

我的 iPhone 应用程序在视图底部有一个标签栏控制器 - 目前我上面有三个按钮。但是,我想添加更多,但为此我需要将三个按钮中的最后一个变成“更多...”按钮,否则其他按钮上的文本会相互碰撞。

我知道如果您在标签栏中有超过 5 个按钮,那么它会自动创建一个更多按钮 - 但有没有办法通过编辑功能手动调用它?

谢谢。

【问题讨论】:

向标签栏添加另一个按钮时会发生什么? 嗯..什么都没有?您需要 5 才能启动“更多...”按钮。 您找到解决方案了吗?可以分享一下吗? 【参考方案1】:

您不必手动创建“更多...”按钮。只需将您需要的所有视图控制器添加到选项卡栏控制器,它就会处理其余部分。

【讨论】:

MMMM 我意识到了,但我只想显示 3 个按钮,其中一个是更多按钮。其余的我只想在用户按下更多时显示,因此我需要以某种方式手动实现它。 你总共有多少个标签?为什么无缘无故需要额外的水龙头?您可以制作自己的“更多”选项卡,然后让它显示导航控制器和带有其他选项的表格视图。 我总共会有五六个,但是它们每个都有很长的名字,当它们同时显示时看起来很扁。我认为这可能是唯一的方法 - 我希望我能以某种方式调用更多按钮,而不必手动进行所有操作。【参考方案2】:

即使只有三个选项卡,您也可以将最后一个栏按钮设置为“更多”按钮。该标签栏项目的初始化代码是:

self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemMore tag:0];

【讨论】:

【参考方案3】:

让你的名字更短,或者不要使用标签栏。您将有五个或六个视图控制器,但只希望在任何给定时间可以访问两个?如果您的三分之二的视图将在“更多”列表中,为什么不将它们全部显示在列表中呢?然后你可以回收底部的空间,并且没有视图需要额外的点击。

如果你真的想这样做,你应该写一个替换UITabBarController。我查看了UIKit,甚至尝试过调整-_viewControllersInTabBar,但UITabBarController 的几个地方都假设了五个按钮的限制,所以你最好自己写。

您可能已经注意到,某些 iPad 应用程序(例如 YouTube)有五个以上的标签栏项目:(来源:apple.com)

如果 UITabBarController 如此痴迷于不超过五个视图控制器,这怎么可能?也许 Apple 在 3.2 SDK 中为 UITabBarController 添加了某种私有方法,可以帮助您。也许它被称为 -_setMaximumNumberOfItems: 之类的东西,也许它设置了一个名为 _maxItemsNSUInteger 实例变量。如果 Apple 确实添加了这样的私有方法,您仍然需要等待 iPhone 兼容的 3.2 版本发布,即使这样,使用私有方法也很糟糕。

更改标签名称。没什么大不了的。

【讨论】:

【参考方案4】:

所以甚至无法制作 6 视图标签栏应用程序吗?

即使每个人的名字都很短

让我们这么说吧

红红红红红红

代替黄黄黄黄黄黄

【讨论】:

以上是关于如何将“更多”按钮添加到标签栏?的主要内容,如果未能解决你的问题,请参考以下文章

如何从“更多”标签栏项目中的编辑检测标签栏项目更改?

自定义标签栏的更多按钮

如何将标签栏添加到表格视图而不是详细视图

按下“更多”按钮时,如何在标签栏控制器内设置导航栏颜色和单元格大小?

将标签栏添加到导航控制器

标签栏的背景颜色 更多按钮视图