iPhone アプリケーションを作成しており、ナビゲーション バーのタイトル ビューの位置にロゴを表示したいと考えています。UINavigationController のサブクラスを作成し、viewDidLoad に次の行を追加しました。
self.navigationBar.topItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"titlelogo.png"]];
(これは1行だけではもったいないと思われるかもしれませんが、私は複数の場所で使用しており、さまざまな理由で[UINavigationBarの外観]を使用したくありません)
これは、ナビゲーション コントローラーの直接の子に対しては正常に機能します。ロゴが表示されます。ただし、セグエを別のビューにプッシュすると、(私の知る限り)「同じ」ナビゲーションコントローラーの一部であっても、ロゴは引き継がれません。
(参考) -> MyNavigationController -> SomeViewController -> SomeOtherViewController
私はまた、 SomeOtherViewController の viewDidLoad に入ろうとしました:
self.navigationController.navigationBar.topItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"titlelogo.png"]];
これでもロゴは表示されません。
いくつか突っ込んだ後、1)navigationController の viewDidLoad にその行がなく、2)SomeOtherViewController の viewDidLoad に 2 番目の行がある場合、次のことを発見しました。
開始: SomeViewController の表示。ロゴなし。クリックしてセグエをプッシュ: 消える前に、ロゴが SomeViewController のバーに表示されるようになりました。現在、ロゴのない SomeOtherViewController: を表示しています。クリックバック: SomeViewController のナビゲーション バーにはまだロゴがあります。
明らかに、ナビゲーションコントローラーの仕組みについて誤解しています。誰でもこれを修正する方法を教えてもらえますか?