3

RootViewController で次のコードを使用してモーダル ビュー コントローラーをロードしています。

[self.navigationController presentModalViewController:accountViewController animated:YES];

accountViewController xib ファイルで、ナビゲーション バーを設定しました。私の MainWindow.xib と RootViewController.xib にも、ナビゲーション バーが正しく設定されています。さらに、私のアプリ デリゲートは、ナビゲーション コントローラーを正しくセットアップしました (私が推測します):

UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.navigationController = aNavigationController;

[window addSubview:navigationController.view];

ただし、accountViewController をロードすると、UINavigationBar はどこにも表示されません。モーダル ビューで UINavigationBar を表示することはできませんか? 戻るボタンを非表示にして、右ボタンを追加するために使用する予定でした...

4

3 に答える 3

6

shaの答えは正しいですが、明確にするためにコード例を使用して拡張するための独自の答えを示しています。

あなたはおそらく次のようなものが欲しいでしょう:

- (void)showAccountViewController
{
    AccountViewController* accountViewController = [[AccountViewController alloc] initWithNibName:@"AccountView" bundle:nil];
    ...
    // Initialize properties of accountViewController
    ...
    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:accountViewController];
    [self.navigationController presentModalViewController:navController animated:YES];
    [navController release];
    [accountViewController release];
}
于 2010-09-11T19:56:17.503 に答える
1

viewControllerではなく、viewControllerを内部に持つnavigationControllerをプッシュする必要があります。

于 2010-09-11T12:13:42.970 に答える
0

属性インスペクターで表示スタイルを「現在のコンテキスト」に設定することもできます。モーダル ビューは、ナビゲーション バーをカバーしません。

于 2015-03-06T16:13:24.090 に答える