アプリケーションにタブ バーがあり、5 つ以上のタブがあるため、"More" タブがあります。
この「その他」タブは自動的に生成されるので、「すぐに」使用できると思っていましたが、「編集」メニューに移動しようとすると、バーのアイコンを「その他」ビューのアイコンに置き換え、次回アプリケーションを起動したときに保存されませんでした。
ユーザーにこの設定を保存させるにはどうすればよいですか?
アプリケーションにタブ バーがあり、5 つ以上のタブがあるため、"More" タブがあります。
この「その他」タブは自動的に生成されるので、「すぐに」使用できると思っていましたが、「編集」メニューに移動しようとすると、バーのアイコンを「その他」ビューのアイコンに置き換え、次回アプリケーションを起動したときに保存されませんでした。
ユーザーにこの設定を保存させるにはどうすればよいですか?
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;
}
独自のソリューションを展開する必要があります。UITabBarControllerDelegate の
tabBarController:willEndCustomizingViewControllers:changed:
ユーザーがアイコンの編集を終了した後の時間をキャプチャします。次に、ユーザーの設定を保存し (たとえば、各タブに番号を割り当て、配列に保存するなど)、次にプログラムを起動したときにそれをロードできます。
あなたは使用することができます
[NSUserDefaults standardUserDefaults];
そのような設定を保存する簡単な方法。