私がしたいのは、画像があるナビゲーションバーです。メインビューにタブコントローラーがあり、各タブの中にUINavigationControllerがあります。私のタブが/ navigationController呼び出しのUIViewControllerの内側から、私はviewDidLoadメソッド内でこれをやって、多くの問題もなくtitleViewを設定できますUINavigationBarを上書きしてデフォルトのタイトルビューを設定します。
self.navigationItem.titleView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mylogo.png"]] autorelease];
しかし、私はこのビューのための私のnavigationBarですべてのタイトルを置き換えたい、とどこでもこれを繰り返すのは醜いようです。だから私はデリゲートでこれを行いました(すべてのアウトレットのものをリンクした後)
self.tabOneNavController.navigationBar.topItem.titleView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mylogo.png"]] autorelease];
もう一度やりました!オク、私はほとんどそこに着いています。 しかし、ポイントは、私は5つのタブがあり、それらのすべてにnavigationControllerがあります。コードの繰り返しはすべての内部ビューからわずか5回に減らしましたが、まだそれは残っています。それは私が各タブのNavControllerのためにそれを行う必要があります。
次にUINavigationBarを拡張して自分自身を作成しようとしましたが、ここで初期化子でこれを設定し、インターフェイスビルダーでオブジェクトクラスとして使用できます。しかし、それは動作していないようです。ここに私がやったことです:UINavigationBarから継承MyNavigationBarインタフェースファイル内
@implementation MyNavigationBar
- (id)init {
self = [super self];
self.tintColor = [UIColor greenColor];
self.topItem.title = @"testing please work";
return self;
}
@end
。しかし、これはうまくいかなかった。私は他の方法を上書きすべきですか?どれ?これは良い習慣ですか? 私は、各タブにナビゲーションバーを1つ追加する必要があるかどうかはわかりません。言われたように、タブがあり、ナビゲーションバーを持っていたいと思っています。今では、インタフェースビルダー/アウトレットとクラスがどのように機能するかを把握しようとしています。コードは機能していますが、私はそれを解凍したいだけです。
ありがとうございました!
これは魅力的なように機能しました。ありがとうございます!ちょうど質問、私は私のカテゴリのインターフェイス '@プロパティ(非原子的な、保持)IBOutlet UIImageView * barTitle;'のプロパティを宣言し、インターフェイスビルダーで、私はそこにある画像ビューにリンクしました。それから、drawRecの実装の中からtitleViewを設定しようとしました。しかし、アウトレットがリンクしているため、アプリが起動するとすぐにエラーが発生します。これを行うためにとにかくありますか?私はちょうど興味がある。 @synthesizeを追加しようとしましたが、カテゴリ内では不可能と言われています。 – Tiago
右のカテゴリはサブクラスではありません。メソッドは追加できます。プロパティを追加することはできません。 – Moshe
私はこれを行う方法が不思議でした。甘い – vinylDeveloper