1

私のメインviewController Aには、UITabbarViewController5つのタブがあるがあります。

  • ビューコントローラーA[self.navigationController setNavigationBarHidden:YES]で、アプリの目的のために設定しました。

  • タブ2のviewControllerには、テーブルビューがあります。テーブルの行を選択すると、viewController Bが表示されます(navigationBarとtabbarもあります)

    • 試し[self.navigationController pushViewCOntroller:B animated:YES]ましたが、うまくいきません。ナビゲーションバーを非表示に設定しているためだと思います
    • 私も試してみ[self presentModalViewController:B]ましたが、うまくいきましたが、viewcontroller Bでは全画面表示になりました(navigationBarとtabbarが消えました)

誰でも私を助けることができますか?前もって感謝します

4

1 に答える 1

1

どうですか

                         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];

(「提示」ビットは議論の余地があります。実際には、アプリの構造の残りの部分に依存します)。

于 2013-04-14T15:55:02.733 に答える