これは正常だと思います。たぶんあなたのコードは更新前に変更/リファクタリングされましたか?
TabBarItemで定義され、このViewControllerのタブバーアイテムをUIViewController表します。
このViewControllerthis.TabBarItemのタブバーアイテムも同様です。たとえば、コードでaを使用しました(これを呼び出しましょう)。UITabBarControllerparent
this.TabBarController.TabBar.Items[x]これの子ビューコントローラの1つのタブバーアイテムを表します。 parent
したがって、child1とchild2(の両方のインスタンスUIViewController)を作成して割り当てると、parent.ViewControllers3つのインスタンスUITabBarItem(親用に1つ、子ごとに1つ)が取得されますが、そのうちの2つだけです(子は表示されます)。
例:ハンドル値のログから
2012-09-14 20:13:24.092 test1[47917:1507] parent.TabBarItem.Handle = 291086496
2012-09-14 20:13:24.094 test1[47917:1507] parent.TabBar.Items [0].Handle = 218412640
2012-09-14 20:13:24.094 test1[47917:1507] parent.TabBar.Items [1].Handle = 160885040
2012-09-14 20:13:24.095 test1[47917:1507] child1.TabBarItem.Handle = 218412640
2012-09-14 20:13:24.096 test1[47917:1507] child2.TabBarItem.Handle = 160885040
だから私は次のいずれかを行うことができます:
child1.TabBarItem.BadgeValue = "5"; // or
parent.TabBar.Items[0].BadValue = "5";
同じ振る舞いをするために。ただし、変更はparent.TabBarItemどこにも表示されません(少なくとも、これがRootViewController私のテストアプリケーションの場合はそうではありません)。