2012-09-14 21 views
1

使用MonoTouch 5.4XCodeiOS 6.0的MonoTouch:TabItem的BadgeValue

的ViewController在TabBarController代碼:

this.TabBarItem.BadgeValue = "5"; 

不再起作用。

新代碼,更改爲此做工作:

this.TabBarController.TabBar.Items[theIndexOfTab].BadgeValue = "5"; 

如果不工作,我的意思是徽章沒有出現,該值不理舊情況。

+0

ahah,名稱** iOS6 **和** Xcode 4.5 **被公開/公開,包括大多數*高級*功能(即您可以在Apple網站上未登錄的內容)。不工作,你的意思是它沒有顯示徽章?或它正在投擲?例如'TabBarItem'爲'null'。 – poupou

+0

徽章沒有出現,似乎只是吞下了價值的設置。 –

回答

0

我覺得這很正常。也許你的代碼在更新之前被更改/重構?

TabBarItemUIViewController定義並代表選項卡欄項的視圖控制器

所以this.TabBarItem是這個這個視圖控制器的標籤欄項目,例如,我在我的代碼中使用了一個UITabBarController(我們稱之爲parent)。

this.TabBarController.TabBar.Items[x]將代表標籤欄項目的parent孩子視圖控制器之一

所以,當我創建child1child2(的UIViewController兩個實例),並將其分配給parent.ViewControllers我們得到(每個兒童一臺父,一個)的UITabBarItem三個實例 - 但只有他們兩個(孩子們將永遠不會可見)。

E.g.從記錄的句柄值

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)。

相關問題