0

UITabBarControllerを使用せずにナビゲーションスタックの途中にUITabBarを実装しています。UITabBarはDetailViewController、選択したタブ要素に関連付けられたViewControllerに画面の一部を委任する場所にあります。タブバーの選択によって表示されるビューコントローラの1つの中に、ビューをモーダルに表示する必要があるUIButtonがあります。試し[self presentModalViewController:modalNavController animated:YES];ましたが、新しいナビゲーションバーが親コントローラーのナビゲーションバーの下に隠れていましたDetailViewController。したがって、私が行う必要があると思うのは、新しいナビゲーションバーがナビゲーションバーの上にくるように、親のナビゲーションコントローラーを使用してビューをモーダルに表示することDetailViewControllerです。

に広告がありDetailViewController、追加をタップすると目的の結果が得られるため、その可能性はわかっていますが、そのコードを組み込むことができませんでした。subViewではなくDetailViewControllerからUIButtonを表示することもできますが、このパターンを数回使用する必要があるため、そのような非正統的なハックで作業する必要はありません。

ありがとう!

編集

私はすでに新しいビューをナビゲーションコントローラーに追加してから、次のようにナビゲーションコントローラーを表示しようとしました。

WriteReviewController *newReview = [[WriteReviewController alloc] initWithNibName:@"WriteReviewController" bundle:nil];
UINavigationController *modalNavController = [[UINavigationController alloc] initWithRootViewController:newReview];
// This is intended to be presented in another view controller class
modalNavController.navigationBar.barStyle = UIBarStyleDefault;  
[self.parentViewController presentModalViewController:modalNavController animated:YES]; 
[modalNavController release];
4

1 に答える 1

0

自己サブクラス化UIViewControllerまたは何か他のものですか?私は通常ペン先でそれをしませんが、私はこの方法でナビゲーションコントローラーでビューをうまくやりました。最初にビューをプッシュすることに成功したかどうかを確認してから、presentModalViewを試してください。

また、これを実装するデリゲートメソッドを使用することをお勧めします。あなたがしていることに必要ではありませんが、後で問題が少なくなることに気付くでしょう。おそらく、物事を行うための「正しい」方法と考えられています。

于 2010-09-22T04:32:32.680 に答える