知道为什么会这样有效:
[[[[[self tabBarController] tabBar] items] objectAtIndex:2]
setBadgeValue:@"Hello"];
但这不是吗?
[[self tabBarItem] setBadgeValue:@"Hello"];
我宁愿不必提供明确的标签栏索引(上面代码中的2)。另外,在第一个片段是使其工作的唯一方法的情况下,有没有办法从视图控制器中获取标签栏索引?
感谢。
答案 0 :(得分:0)
你引用的tabBarItem实际上是tabBarViewController中的一个项吗?如果它不是那么你的问题。你可以知道你的viewController的索引,因为你在tabBarviewCOntroller中设置视图控制器时指定顺序,所以如果你在tabBarViewController中首先设置viewController,那么它的按钮的索引为0。
通过你的评论你的问题变得更加清晰,正如回复所说,也许一旦你设置了UITabBarController viewController,它就抓住了它的tabBarItem,后来改变了那个viewController属性,不会被tabBarViewController更新(我可能错了这个是一个猜测)