0

我在界面生成器中創建了一個tabBar應用程序 - 並在那裏爲我的所有選項卡和選項卡命名。現在可以在運行時以編程方式查找或檢索我的選項卡名稱嗎? 當我做viewControllers陣列的NSLog的,我得到的是:
( 「」, 「」, 「」, 「」, 「」 )你能以編程方式檢索TabBarApp中的選項卡的名稱嗎?

這顯然沒有好 - 我需要獲得更具體的信息。

另外,我注意到你不能在標籤中設置標籤,標題或標籤到任何標籤中的視圖控制器。

那麼如何通過代碼識別你坐在你的各個標籤中?或者你必須拋棄接口生成器,並通過代碼做所有事情?

回答

1
for(id btn in TabObject.tabBar.items) 
    { 
     if([btn isKindOfClass:[UITabBarItem class]]) 
     { 
      UITabBarItem *sender=btn; 
      NSLog(@"%@",sender.title); 
     } 
    } 
+0

工作:-)非常感謝你:-) – sirab333

1

每個視圖控制器中的標籤欄項目包含標題。

for (UIViewController *viewController in tabBarController.viewControllers) { 
    NSLog(@"%@", viewController.tabBarItem.title); 
} 

話雖如此,我認爲指特定標籤的最好辦法是從應用程序委託給每個視圖控制器有明確的IBOutlet秒。由於不會超過一小撮,所以這不應該是額外的代碼。

+0

我只是複製粘貼你的代碼,我得到這個錯誤:「使用未聲明的標識符‘變種’的」 – sirab333

+0

在從App-委託給每個視圖控制器指定IBOutlets方面 - 你的意思是每個標籤?所以代碼是這樣的:「IBOutlet UITabBarItem * tab1,* tab2,* tab3;」等等,然後將箭頭從文件所有者拖到每個選項卡? – sirab333

+0

'var'應該是'UIViewController *'(對不起,我腦子錯誤的語言)。你想讓視圖控制器的出口,所以把它們聲明爲'@property(nonatomic,retain)IBOutlet UIViewController *'。 –

相關問題