6

我构建了一个包含 5 个以上选项卡的选项卡栏,其余选项卡自动添加到“更多”视图中。这很好,但除此之外,用户还可以“编辑”应用程序选项卡的配置。

我不希望用户能够这样做。有没有办法阻止用户这样做?

4

2 回答 2

3

查看UITabBarController 文档。搜索“customizableViewControllers”

可定制的视图控制器

此选项卡栏控制器管理的可自定义的视图控制器子集。

@property(nonatomic, copy) NSArray *customizableViewControllers

讨论

此属性控制用户可以重新排列选项卡栏中的哪些项目。当用户点击选项卡栏视图上的更多项目时,会出现一个自定义界面,其中显示任何不适合主选项卡栏的项目。该界面还包含一个允许用户重新排列项目的编辑按钮。只有关联的视图控制器在这个数组中的项目才能从这个界面重新排列。如果数组为空或此属性的值为 nil,则标签栏不允许重新排列任何项目。

更改 viewControllers 属性的值(直接或使用 setViewControllers:animated: 方法)也会更改此属性的值。当第一次分配给标签栏控制器时,默认情况下所有视图控制器都是可定制的。

基本上你需要做的是使用下面的代码,将值设置为 nil:


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

干杯,
VFN

于 2010-01-25T15:04:31.700 回答
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]];
}
于 2011-10-07T17:16:17.413 回答