如何在Tab栏中添加“更多”按钮?

时间:2010-01-12 04:18:44

标签: iphone objective-c uitabbarcontroller uitabbar uitabbaritem

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

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

感谢。

4 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:2)

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

如果你真的想这样做,你应该为UITabBarController写一个替代品。我浏览了UIKit,甚至尝试了调整-_viewControllersInTabBar,但在UITabBarController的几个地方假设了五个按钮的限制,所以你最好自己编写。

您可能已经注意到某些iPad应用程序(如YouTube)有超过五个标签栏项目:alt text http://images.apple.com/ipad/features/images/overview_youtube_20100225.jpg

如果UITabBarController非常痴迷于不超过五个视图控制器,那该怎么办呢?也许Apple在3.2 SDK中为UITabBarController添加了某种私有方法,可以帮助你。也许它被称为类似-_setMaximumNumberOfItems:的东西,也许它设置了一个名为NSUInteger的{​​{1}}实例变量。如果Apple确实添加了这样的私有方法,你仍然需要等待与iPhone兼容的3.2版本发布,即使这样,使用私有方法也是不好的。

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

答案 3 :(得分:0)

所以甚至不可能制作6个视图标签栏应用程序?

即使每个人的名字都超短

让我们这样说

红色,红色,红色,红色,红色,

代替黄黄黄黄黄