有没有一种方法可以防止配置tabbar项?

6
我使用超过5个标签来构建一个选项卡,其余的标签会自动添加到“更多”视图中。这很好,但与此同时,用户可以“编辑”应用程序标签的配置。
我不希望用户能够这样做。是否有方法防止用户这样操作?
2个回答

3
请查看UITabBarController文档,并搜索"customizableViewControllers"。
"customizableViewControllers"是由该标签栏控制器管理的可自定义的视图控制器子集。@property(nonatomic, copy) NSArray *customizableViewControllers
此属性控制标签栏中可以由用户重新排列的项目。当用户在标签栏视图上点击“更多”项时,会显示一个自定义界面,其中显示未适合主要标签栏的任何项目。此界面还包含一个“编辑”按钮,允许用户重新排列项目。只有其关联的视图控制器位于此数组中的项目才能从此界面重新排列。如果数组为空或此属性的值为nil,则标签栏不允许重新排列任何项目。
更改viewControllers属性的值(直接更改或使用setViewControllers:animated:方法)也会更改此属性的值。当首次分配给标签栏控制器时,默认情况下所有视图控制器都是可自定义的。
基本上,您需要使用以下代码将值设置为nil:

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
tabBarController.customizableViewControllers=nil;
}

祝好,
VFN


请注意,在执行此步骤之前,您必须先定义tabBarController,否则它将无法正常工作。 - Jann

1
// '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]];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接