Есть ли способ предотвратить настройку элементов панели вкладок? - PullRequest
6 голосов
/ 25 января 2010

Я создал панель вкладок с более чем 5 вкладками, а оставшиеся были автоматически добавлены в представление «Больше». Это нормально, но, кроме того, пользователь может «редактировать» конфигурацию вкладок приложения.

Я не хочу, чтобы пользователь мог это делать. Есть ли способ запретить пользователю делать это?

Ответы [ 2 ]

3 голосов
/ 25 января 2010

Ознакомьтесь с документацией UITabBarController . Искать "customizableViewControllers"

customizableViewControllers

Управляется подмножество контроллеров представления этим контроллером панели вкладок, который может быть подгонянный.

@ свойство (неатомное, копия) NSArray * CustomizableViewControllers

Обсуждение

Это свойство контролирует, какие элементы в панель вкладок может быть переставлена пользователь. Когда пользователь касается элемента «Больше» на панели вкладок, пользовательский появляется интерфейс, отображающий любые элементы это не помещалось на главной панели вкладок. Этот интерфейс также содержит Edit кнопка, которая позволяет пользователю переставить предметы. Только предметы чьи связанные контроллеры представления в этом массиве можно переставить из этот интерфейс. Если массив пуст или значение этого свойства равно нулю, панель вкладок не позволяет никаких элементов быть переставленным.

Изменение значения свойство viewControllers (либо напрямую или используя setViewControllers: animated: метод) также меняет значение этого имущество. При первом назначении контроллер панели вкладок, все представления контроллеры настраиваются по умолчанию.

В основном вам нужно использовать следующий код, чтобы установить значение nil:


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

Ура,
VFN

1 голос
/ 07 октября 2011
// '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]];
}
...