これが問題です。で次のコードを使用してUINavigationController
、rootViewController
. 多数の異なる画面間でを交換しrootViewController
、ユーザーが各画面からドリルダウンできるようにする必要があります (これが、Nav コントローラーが必要な理由です)。
SomeViewController *tmp = [[SomeViewController alloc] initWithNibName:@"SomeViewController" bundle:nil];
NSArray * viewControllers = [self viewControllers];
NSArray * newViewControllers = [NSArray arrayWithObjects:tmp, nil];
[self setViewControllers:newViewControllers];
のクラス リファレンスを読んでUINavigationController
みると、「viewControllers」プロパティについて、「ルート ビュー コントローラーは配列のインデックス 0 にあり、バック ビュー コントローラーはインデックス n-2 にあり、トップ コントローラーはインデックス n-1 で、n は配列内のアイテムの数です。」
そこに viewControllers 配列のカウントを出力すると、現在の rootViewController である 1 が得られます。トップコントローラー(ナビゲーションバーだと思います)用に何かあるべきではありませんか?
新しいビューで使用するとすぐsetViewControllers
に、ナビゲーション バーのすべてが消えます。左ボタンと右ボタン、およびカスタム タイトル ボタンがあり、これらはすべて初期化され、init メソッドでナビゲーション バーに追加され、消えるまで正常に動作していたことを追加します。
どんな助けでも大歓迎です。