2

これが機能する理由:

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

しかし、これはそうではありませんか?

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

明示的なタブバーインデックス(上記のコードでは2)を提供する必要はありません。また、最初のスニペットがこれを機能させる唯一の方法である場合に、View Controller内からタブバーインデックスを取得する方法はありますか?

ありがとう。

4

1 に答える 1

0

参照しているtabBarItemは、実際にはtabBarViewController内のアイテムですか?そうでない場合は、問題があります。tabBarviewCOntrollerでビューコントローラを設定するときに順序を指定するため、viewControllerのインデックスを知ることができます。したがって、tabBarViewControllerで最初にviewControllerを設定すると、そのボタンのインデックスは0になります。

あなたのコメントであなたの質問は私にもっと明確になります、おそらくあなたがUITabBarController viewControllerを設定すると、それはそのtabBarItemをつかみ、後でそのviewControllerプロパティへの変更はtabBarViewControllerによって更新されません(私は間違っているかもしれませんこれは推測です)。

于 2009-09-08T17:00:26.513 に答える