1

UINavigationControllerでViewControllerを押しましたが、「戻る」ボタンが表示されません...NavBarは空ですがそこにあります。

ストーリーボードでは、最初のView ControllerはNavigationControllerであり、SimulatedMetricsセクションで「TopBar」を「None」に設定しました。推論バーまたはナビゲーションバーに切り替えると、すべて正常に機能し、「戻る」というテキストが付いた戻るボタンが表示されます。(しかし、理由でNavBarを削除したので、すべてのビューが醜いです)。

デザイン(NavBarが非表示/非表示)を保持し、NavBarと[戻る]ボタンを使用して新しいViewControllerをプッシュできるようにするにはどうすればよいですか。必要に応じてNavBar!

ありがとう

4

2 に答える 2

0

アプリケーションでナビゲーションを構成したい場合は、アプリデリゲートのApplicationDidFinishLoadingメソッドでこれを試してください

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];

[window makeKeyAndVisible];
[window addSubview:navController.view];

これを使用して、ボタンのアクションメソッドのビューを変更した後

DetailViewController *ViewController = [[DetailViewController alloc] initWithNibName:nil bundle:nil];

  [self.navigationController pushNavigationController:ViewController animated:YES];
于 2012-04-24T12:16:37.563 に答える
0

解決策を見つけました。AppDelegateをUINavigationControllerデリゲートとして配置し、NavBarを手動で非表示/表示します。

私のストーリーボードでは、ナビゲーションコントローラーは次の機能を備えています。

  1. シミュレートされたメトリック->トップバー->なし

  2. ナビゲーションコントローラー->バーの可視性->[ナビゲーションバーを表示する]のチェックを外します

AppDelegate .h / .m:

@interface AppDelegate : UIResponder <UIApplicationDelegate, UINavigationControllerDelegate>


- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    if (something) {
        navigationController.navigationBarHidden = TRUE;
    }
}

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    if (somethingElse) {
        navigationController.navigationBarHidden = FALSE;
    }
}
于 2012-04-24T12:06:05.990 に答える