moreNavigationController сохранить настройки - PullRequest
1 голос
/ 21 февраля 2011

У меня есть панель вкладок в моем приложении, и она имеет вкладку «Еще», потому что есть более пяти вкладок.

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

Как я могу позволить пользователю сохранить этот параметр?

Ответы [ 2 ]

2 голосов
/ 21 февраля 2011

Как сказал futureelite7, это путь. Если вам нужна помощь, вот как мы это делаем:

- (void) tabBarController:(UITabBarController *)tabBarCtroller
 didEndCustomizingViewControllers:(NSArray *)viewControllers
                          changed:(BOOL)changed {
  NSUInteger count = tabBarCtroller.viewControllers.count;
  NSMutableArray *tabOrderArray = [[NSMutableArray alloc] initWithCapacity:count];

  for (UIViewController *viewController in viewControllers) {
    NSInteger tag = viewController.tabBarItem.tag;
    [tabOrderArray addObject:[NSNumber numberWithInteger:tag]];
  }

  [[NSUserDefaults standardUserDefaults] setObject:tabOrderArray forKey:@"savedTabOrder"];
  [[NSUserDefaults standardUserDefaults] synchronize];

  [tabOrderArray release];
}

А в вашем приложении DidFinishLaunching

NSArray *initialViewControllers =
    [NSArray arrayWithArray:self.tabBarController.viewControllers];
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  NSArray *tabBarOrder = [defaults arrayForKey:@"savedTabOrder"];

  if (tabBarOrder) {
    NSMutableArray *newViewControllers =
      [NSMutableArray arrayWithCapacity:initialViewControllers.count];

    for (NSNumber *tabBarNumber in tabBarOrder) {
      NSUInteger tabBarIndex = [tabBarNumber unsignedIntegerValue];
      [newViewControllers addObject:[initialViewControllers objectAtIndex:tabBarIndex]];
    }

    self.tabBarController.viewControllers = newViewControllers;
  }
1 голос
/ 21 февраля 2011

Вам нужно накатить собственное решение. Используйте UITabBarControllerDelegate's

tabBarController:willEndCustomizingViewControllers:changed:

чтобы зафиксировать время после того, как пользователь закончит редактирование значков. Затем вы можете сохранить настройки пользователя (например, назначить номер для каждой вкладки, сохранить его в массив и т. Д.) И загрузить его при следующем запуске программы.

Вы можете использовать

[NSUserDefaults standardUserDefaults]; 

для быстрого сохранения таких настроек.

...