2014-01-14 12 views
5

私は現在、ストーリーボードを介して私のtabBarControllerと関係のある多くのviewControllerを持っています。特定の設定が与えられた場合、私はプログラム的に特定のviewControllerを非表示または可視にしたいと思います。私はtabBar全体を隠すことができますが、それは私が何をしているのではないです。私はXcodeで遊んでいて、interwebsを精練していますが、解決策を見つけることはできません。下の行に沿って何かが私を働かせない!tabBarの項目を非表示にしますか?

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

答えて

8

何かにそのitemsプロパティを設定し、問題を解決するために同様のコードを使用します。

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

UITabBarを変更するには、新しい

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

クール、その後私は後でそれを含めるaddObjectAtIndexを推測する? – veggyaurus

+3

動作しません: 'NSInternalInconsistencyException'、理由: 'タブバーコントローラによって管理されているタブバーを直接変更することはできません。' – veggyaurus

0

それはあなたが1行でそれを行うことができ判明:

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

1は、削除したい項目の指標であると仮定します。

関連する問題