これはおそらく、rootViewController (メインの UIWindow 用) が TabBar ではなく Navigationcontroller に設定されているためです。タブバーをなくしたくない場合は、ルート ビュー コントローラーとして設定するだけです。
AppDelegate の appDidFinishLaunching で次の操作を行います
LoginViewController *loginViewController = [[FirstViewController alloc] init];
UINavigationController *loginNavigationController = [[UINavigationController alloc] loginViewController];
[firstViewController release];
self.window.rootViewController = loginNavigationController;
次に、ログインページで:
- (void)loginSuccessfull
{
FirstViewController *firstViewController = [[FirstViewController alloc] init];
UINavigationController *firstNavigationController = [[UINavigationController alloc] initWithViewController:firstViewController];
[firstViewController release];
SecondViewController *secondViewController = [[SecondViewController alloc] init];
UINavigationController *secondNavigationController = [[UINavigationController alloc] initWithViewController:secondViewController];
[secondViewController release];
UITabBarController *tabBarController = [[UITabBarController alloc] init];
[tabBarController setViewControllers:
[NSArray arrayWithObjects:firstNavigationController, secondNavigationController, nil]];
[firstNavigationController release];
[secondNavigationController release];
[self.navigationController pushViewController:tabBarController];
[tabBarController release];
}
それでもナビゲーション機能が必要な場合は、viewControllers を UINavigationController 内にラップし、UIViewcontroller の代わりに周囲のナビゲーション コントローラを tabBar に追加します。