5 つ以上のタブを含むタブ バーを作成すると、残りのタブが自動的に [その他] ビューに追加されました。それは問題ありませんが、それに加えて、ユーザーはアプリのタブの構成を「編集」できます。
ユーザーにそれをさせたくありません。ユーザーがこれを行うのを防ぐ方法はありますか?
5 つ以上のタブを含むタブ バーを作成すると、残りのタブが自動的に [その他] ビューに追加されました。それは問題ありませんが、それに加えて、ユーザーはアプリのタブの構成を「編集」できます。
ユーザーにそれをさせたくありません。ユーザーがこれを行うのを防ぐ方法はありますか?
UITabBarControllerのドキュメントをご覧ください。「customizableViewControllers」を検索してください
カスタマイズ可能なViewController
このタブ バー コントローラーによって管理される、カスタマイズ可能なビュー コントローラーのサブセット。
@property(nonatomic, copy) NSArray *customizableViewControllers
討論
このプロパティは、ユーザーがタブ バーのどの項目を再配置できるかを制御します。ユーザーがタブ バー ビューで [その他] 項目をタップすると、カスタム インターフェイスが表示され、メインのタブ バーに収まらなかった項目が表示されます。このインターフェイスには、ユーザーが項目を再配置できる [編集] ボタンも含まれています。このインターフェイスから再配置できるのは、関連付けられた View Controller がこの配列にある項目のみです。配列が空の場合、またはこのプロパティの値が nil の場合、タブ バーではアイテムを再配置できません。
viewControllers プロパティの値を (直接または setViewControllers:animated: メソッドを使用して) 変更すると、このプロパティの値も変更されます。タブ バー コントローラーに最初に割り当てられると、すべてのビュー コントローラーが既定でカスタマイズ可能になります。
基本的に、値を nil に設定するには、次のコードを使用する必要があります。
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
tabBarController.customizableViewControllers=nil;
}
乾杯、
VFN
// 'Move view' customization
// MORE tab bar items 'More view'
- (void)applicationDidFinishLaunching:(UIApplication *)application {
self.tabBarController.customizableViewControllers=nil;
UIViewController * moreController =
[[self.tabBarController.moreNavigationController viewControllers] objectAtIndex:0] ;
UITableView * moreTableView = ( UITableView *) [moreController view];
[moreTableView setSeparatorColor:[UIColor redColor]];
[moreTableView setBackgroundColor:[UIColor yellowColor]];
}