1. ホーム
  2. iphone

[解決済み] iPhone。ナビゲーションバー付きのモーダルなUITableViewControllerを表示する

2023-04-30 02:33:47

質問

モーダルビューを表示しているのですが、これは UITableViewController クラスであるモーダルビューを表示しています。 何らかの理由で、表示時にナビゲーション バーが表示されません。 以下は私のコードです。

SettingsCreateAccount *detailViewController = [[SettingsCreateAccount alloc] initWithStyle:UITableViewStyleGrouped];
    detailViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    detailViewController.navigationController.navigationBarHidden = NO;
    [self.navigationController presentModalViewController:detailViewController animated:YES];
    detailViewController = nil;
    [detailViewController release];

デフォルトで表示されるんじゃなかったっけ? 参考になるのであれば、私はこれを別のクラスから呼び出していて、そのクラスもまた UITableViewController によって管理されている UINavigationController . アイデア?

どのように解決するのですか?

モーダルビューコントローラを提示するとき、既存のナビゲーションコントローラやナビゲーションバーは使用しません。ナビゲーション バーを表示したいだけであれば、ナビゲーション バーをモーダル ビューのサブビューとして追加し、そのように表示する必要があります。

ナビゲーション機能を持つモーダルビューコントローラを表示したい場合は、代わりに詳細ビューコントローラを含むモーダルナビゲーションコントローラを、次のように表示する必要があります。

SettingsCreateAccount *detailViewController = [[SettingsCreateAccount alloc] initWithStyle:UITableViewStyleGrouped];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
[detailViewController release];

navController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:navController animated:YES];
[navController release];

モーダルコントローラーは、独自のナビゲーションスタックを管理します。