7

ビューコントローラに独自のナビゲーションバーを持たせたいのですが。これは、既存のナビゲーションバーを表示/非表示にするよりも簡単だと思います。次のコードが機能しています。これはアンチパターンですか、それとも比較的一般的な方法ですか?

MyViewController *viewController = [[MyViewController alloc] init] 
                                    autorelease];

UINavigationController *wrapper = [[[UINavigationController alloc] 
                                   initWithRootViewController:viewController] 
                                    autorelease];

[self.navigationController presentViewController:wrapper 
                                        animated:YES 
                                      completion:nil];
4

3 に答える 3

5

ナビゲーションバーと独自のナビゲーションスタックを備えたモーダルビューコントローラーを表示するには、投稿したコードが正確です。注意する必要があるのは、2番目のUINavigationControllerを既存のnavコントローラーのスタックにプッシュすることだけです。これにより問題が発生します。

于 2012-10-02T20:50:43.593 に答える
2

Swiftの場合:

let mainViewController = MainViewController()
let navigationController = UINavigationController(rootViewController: mainViewController)
present(navigationController, animated: true, completion: nil)
于 2018-08-08T17:23:54.423 に答える
1

NavigationBarが必要な静的UIViewは、InterfaceBuilderで作成します。viewControllerをモーダルに提示しているので(私は推測します)、UINavigationController全体が必要かどうかはあなたが決めることができます。あるnavigationControllerのrootViewを別のnavigationController内にプッシュすることにならない限り、最初の、大したことではない下にnavigationBarが作成されます。

「完了」ボタンと「キャンセル」ボタンがある「ログイン」タイプのフォームなどを提示する場合は、これらのアイテムを使用してXIBを作成し、提示します。

これをすべてコードですばやく実行する方法を探している場合は、実行していることに何の問題もありません。tintColorとタイトルに簡単にアクセスできます。これはIBで行うことができますが、すべてのオブジェクトを接続するにはIBOutletが必要です。

于 2012-10-02T20:43:00.240 に答える