2014-01-14 186 views
5

我目前有許多viewControllers與我的tabBarController通過Storyboard有關係。鑑於特定的設置,我想以編程方式使某個viewController隱藏或可見。我可以隱藏整個tabBar,但那不是我所追求的。我一直在玩Xcode和淘汰interwebs,但無法找到解決方案。沿着下面的方向行事,這不起作用!隱藏tabBar中的項目?

[[self.tabBarController.tabBar.items objectAtIndex:2] setHidden:YES]; 

回答

8

使用類似的代碼來解決這個問題。

NSMutableArray *newTabs = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers]; 
[newTabs removeObjectAtIndex: 3]; 
[newTabs removeObjectAtIndex: 2]; 
[self.tabBarController setViewControllers:newTabs]; 
0

要更改UITabBar,其items屬性設置爲新的東西

UITabBar *tabBar = self.tabBarController.tabBar; 
NSMutableArray *newTabs = [NSMutableArray arrayWithArray:tabBar.items]; 
[newTabs removeObjectAtIndex: 2]; 
tabBar.items = newTabs; 
+0

很酷,然後我猜addObjectAtIndex稍後加入它? – veggyaurus

+3

不起作用:'NSInternalInconsistencyException',原因:'不允許直接修改標籤欄控制器管理的標籤欄。 – veggyaurus

0

事實證明,你可以在一行做到這一點:

tabBarController?.viewControllers?.remove(at: 1) 

假設1是要刪除的項目的索引。