質問

どうすれば削除できますか UITabBarItem から UITabBar?

Google 検索やドキュメントからは何も見つからなかったので、何も試していません。 UITabBar, UITabBarController, 、 または UITabBarItem.

前もって感謝します!:)

役に立ちましたか?

解決

UITタブバー 持っています NSArray アイテムのコレクション。items プロパティは NSArray であり、 NSMutableArray, 場合は、削除するオブジェクトが含まれていない既存の NSArray から新しい NSArray を構築し、items プロパティを新しい配列に設定する必要があります。

/* 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];

他のヒント

マイク・キャロンのアドバイスは、例外がスローされますのあなたは、コントローラに属しているタブバーを変更する場合。

  

のiOS 3.0以降では、あなたはいけません   メソッドを使用しようとすると、   このクラスのプロパティを変更するには   それが関連付けられているタブバー   タブバーコントローラオブジェクト。変更   この方法の結果でタブバー   例外のスローします。代わりに、任意の   タブバーやその修正に   アイテムは、タブバーを介して行わなければなりません   コントローラインタフェース。あなたはまだかもしれません   直接ことをタブバーのオブジェクトを変更   タブバーに関連付けられていません   コントローラ

この場合self.tabBarItem=nilは、それを削除します。

注:iOSの11.ではない仕事にこれが表示されますは、iOS 10でまだ良かった。

:それはヒューマンインターフェイスガイドラインを破壊するが、きれいに動作しているようですすべて同じですので、

これは一部には、私の意見では、適度に恐ろしい答えです

UITabBar *oldbar = self.tabBarController.tabBar;
UITabBar *newbar = [[UITabBar alloc] initWithFrame:CGRectMake(0,0,oldbar.frame.size.width,oldbar.frame.size.height)];
NSMutableArray *olditems = [[oldbar items] mutableCopy];
[olditems removeObjectAtIndex:0];
NSArray *newitems = [[NSArray alloc] initWithArray:olditems];
[newbar setItems:newitems animated:false];
[oldbar addSubview:newbar];

の層がそれきれいに古いタブバーの上に、それがその機能を維持します。

それ
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top