1

アプリケーションにタブ バーがあり、5 つ以上のタブがあるため、"More" タブがあります。

この「その他」タブは自動的に生成されるので、「すぐに」使用できると思っていましたが、「編集」メニューに移動しようとすると、バーのアイコンを「その他」ビューのアイコンに置き換え、次回アプリケーションを起動したときに保存されませんでした。

ユーザーにこの設定を保存させるにはどうすればよいですか?

4

2 に答える 2

2

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;
  }
于 2011-02-21T08:25:27.700 に答える
1

独自のソリューションを展開する必要があります。UITabBarControllerDelegate の

tabBarController:willEndCustomizingViewControllers:changed:

ユーザーがアイコンの編集を終了した後の時間をキャプチャします。次に、ユーザーの設定を保存し (たとえば、各タブに番号を割り当て、配列に保存するなど)、次にプログラムを起動したときにそれをロードできます。

あなたは使用することができます

[NSUserDefaults standardUserDefaults]; 

そのような設定を保存する簡単な方法。

于 2011-02-21T07:13:45.300 に答える