MonoTouch 5.4
在新版本XCode
和iOS
6.0上使用
TabBarController 代码中的旧ViewController:
this.TabBarItem.BadgeValue = "5";
不再工作。
新代码,改成这个确实有效:
this.TabBarController.TabBar.Items[theIndexOfTab].BadgeValue = "5";
不工作是指徽章没有出现,在旧情况下该值被忽略。
MonoTouch 5.4
在新版本XCode
和iOS
6.0上使用
TabBarController 代码中的旧ViewController:
this.TabBarItem.BadgeValue = "5";
不再工作。
新代码,改成这个确实有效:
this.TabBarController.TabBar.Items[theIndexOfTab].BadgeValue = "5";
不工作是指徽章没有出现,在旧情况下该值被忽略。
我认为这是正常的。也许您的代码在更新之前已更改/重构?
TabBarItem
在此视图控制器的标签栏项目中定义UIViewController
并表示。
这个视图控制器this.TabBarItem
的标签栏项目也是如此,例如我在我的代码中使用了 a (我们称之为它)。UITabBarController
parent
this.TabBarController.TabBar.Items[x]
将代表this的其中一个子视图控制器的选项卡栏项。 parent
因此,当我创建child1
and child2
(的两个实例UIViewController
)并将它们分配给我们时,parent.ViewControllers
我们得到三个实例UITabBarItem
(一个用于父级,一个用于每个子级) - 但只有两个实例(子级将永远可见)。
例如从记录句柄值
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
的测试应用程序的情况下不是)。