12

違いがわかりません。 ナビゲーションベースのアプリケーションがあり、self.navigationcontroller.navigationitemnavigationControllerのメソッドで、このコードを使用して NavigationItem titleView をカスタム イメージに設定します。self.navigationitemviewDidLoadrootViewController

UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
self.navigationItem.titleView =titleImage;

ちなみにこの方法でtitleviewを変更しようとすると

UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
self.navigationcontroller.navigationItem.titleView =titleImage;

何も起こらなかった。self.navigationcontroller.navigationitem、およびナビゲーションコントローラーが別のビューをスタックにプッシュすると、ナビゲーションアイテムのタイトルビューがクリアされ、参照がnilに設定されます。また、 と の参照が同じではないことに気付きましたself.navigationitem

4

2 に答える 2

9

私はあなたが求めているのは次のとおりだと思います:self.navigationController.navigationItemそしてself.navigationItem。質問に本質的ではないので、残りの質問は無視します。

私が理解しself.navigationController.navigationItemていることは、ナビゲーションコントローラーのナビゲーションアイテム(つまり、rootViewController)にアクセスしているため、役に立たないことです。本当に必要なのはself.navigationItem、ビューコントローラーのナビゲーションアイテムです。これは、基本的にビューコントローラーに表示されるものだからです。

UINavigationControllerはのサブクラスであるUIViewControllerため、サブクラス化self.navigationController.navigationItemからの波及メソッドにすぎません。それは(少なくとも私の経験では)何も前向きなことはしません。

編集:さらに明確にするためにこれを読んでください。

于 2012-04-26T14:44:13.090 に答える
1

それらは違う。を動的に追加する場合はUINavigationController、 を使用しますself.navigationController.navigationItem

質問をより明確にしてください。

于 2012-04-26T12:08:14.920 に答える