2

知道为什么会这样:

[[[[[self tabBarController] tabBar] items] objectAtIndex:2] 
                                          setBadgeValue:@"Hello"];

但这不是吗?

[[self tabBarItem] setBadgeValue:@"Hello"];

我宁愿不必提供明确的标签栏索引(上面代码中的 2)。此外,在第一个片段是使其工作的唯一方法的情况下,有没有办法从视图控制器中获取标签栏索引?

谢谢。

4

1 回答 1

0

您所指的 tabBarItem 实际上是 tabBarViewController 中的一个项目吗?如果不是,那就是你的问题。您可以知道 viewController 的索引,因为您在 tabBarviewCONtroller 中设置视图控制器时指定了顺序,因此如果您在 tabBarViewController 中首先设置 viewController,则其按钮的索引将为 0。

随着您的评论,您的问题对我来说变得更加清楚,正如回复所述,也许一旦您设置了 UITabBarController viewController,它就会获取它的 tabBarItem 并且以后对该 viewController 属性的更改不会由 tabBarViewController 更新(我可能错了,这是一个猜测)

于 2009-09-08T17:00:26.513 回答