1

ここでこのコードを見つけたので、うまくいくと思います。

`/* suppose we have a UITabBar *myBar, and an int index idx */  
NSMutableArray modifyMe = [[myBar items] mutableCopy];  
[modifyMe removeObjectAtIndex:idx];  
NSArray *newItems = [[NSArray alloc] initWithArray:modifyMe];  
[myBar setItems:newItems animated:true];`

問題は、動作させるためにこのコードをどこに記述すればよいかということです。
の中に入れてみましviewDidLoadUITabBarControllerが、うまくいきませんでした。

4

1 に答える 1

2

からタブバー項目を変更している場合、UITabbarControllerは使用できませんsetItems:animated:。ドキュメントから:

iOS 3.0 以降では、タブ バー コントローラー オブジェクトに関連付けられている場合、このクラスのメソッドとプロパティを使用してタブ バーを変更しようとしないでください。この方法でタブ バーを変更すると、例外がスローされます。代わりに、タブ バーまたはその項目に対する変更は、タブ バー コントローラー インターフェイスを介して行う必要があります。

代わりに、削除したいタブバー項目に対応する を削除して、 のviewControllersプロパティを交換します。たとえば、2 番目のタブバー項目を削除する場合:UITabbarControllerUIViewController

NSMutableArray *newViewControllers = [NSMutableArray arrayWithArray:self.viewControllers];
[newViewControllers removeObjectAtIndex:1];
[self setViewControllers:newViewControllers];
于 2012-12-01T18:09:37.020 に答える