どうですか
tabBarController
|
|
|-->Item1ViewController
|
|-->NavController->Item2ViewController->push->VCB
|
|-->Item3ViewController
|
tabBarController がまだ NavigationController に含まれていないことを確認してください。これは混乱の原因となります。
オプションで、それぞれのプロパティを設定することで、Item2ViewController と VCB のナビゲーション バーを表示/非表示にすることができます。
ストーリーボードを使用する場合は、メニュー項目の「embed in...」を使用して tabBarController を設定した後、NavContoller に Item2ViewController を埋め込むことができます。
コードでこの種のことができる場合:
UIViewController* vc1 = [[UIViewController alloc] init];
UIViewController* vc2 = [[UIViewController alloc] init];
UIViewController* vc3 = [[UIViewController alloc] init];
UIViewController* vc4 = [[UIViewController alloc] init];
UIViewController* vc5 = [[UIViewController alloc] init];
UINavigationController* navC =
[[UINavigationController alloc] initWithRootViewController:vc2];
NSArray* viewControllers = @[vc1,navC,vc3,vc4,vc5];
UITabBarController* tabC = [[UITabBarController alloc] init];
tabC.viewControllers = viewControllers;
[self presentViewController:tabC animated:YES completion:nil];
// don't do this:
// [self.view addSubview:tabC.view];
(「提示」ビットは議論の余地があります。実際には、アプリの構造の残りの部分に依存します)。