2010-11-23 12 views
0

G'dayすべてiPhone - 「その他のアイテム」のナビゲーションバーにカスタムカラーを設定するにはどうすればいいですか?

これは小さな詳細ですが、私のアプリのプロフェッショナルな仕上がりに影響します。

私のアプリは、5つ以上のタブを持つ各タブのナビゲーションバーを持つタブバーのパターンに従います。したがって、「その他」の項目です。ナビゲーションバーにカスタムティントが適用されていますが、「More」アイテムのナビゲーションバーにアクセスして、そのティントを設定する方法を見つけることができませんでした。誰も私にどのように教えてくれますか? (私には意味をなすように見える理由のために)別にAppleの警告から

更新...私はこのコードを使用しUINavigationBar上のカテゴリーの提案に続い

...

@implementation UINavigationBar (UINavigationBar_Additions) 

- (void)drawRect:(CGRect)rect { 
    UIColor *color = [UIColor colorWithRed:0.862745098039216 
            green:0.568627450980392 
             blue:0.098039215686275 
            alpha:1]; 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetFillColor(context, CGColorGetComponents([color CGColor])); 
    CGContextFillRect(context, rect); 
    [self setBarStyle:UIBarStyleBlack]; 
    [self setTintColor:color]; 
} 

@end 

についてこのような隠しメソッドをオーバーライドしないと、UINavigationBar &のグラデーションが失われています。私の現在のアプローチであるviewDidLoadの色の設定方法は変わりません。

どのように私のケーキを持つことができるかに関する提案&もそれを食べる。

TIA、ペドロ:)

+0

が重複する可能性を[詳細]タブのUINavigationbarの色を変更しますか?](http://stackoverflow.com/questions/4139719/change-uinavigationbar-color-for-more-tab) –

+0

Jeff Kelleyのおかげで、私はこれを解決しました。それはいくつかの点で小さなことですが、それは私のアプリに素敵なプロフェッショナルな仕上がりに行く方法です。 – Pedro

答えて

2

(あなたは、代わりに画像を描画するような楽しい事を...行うことができます)これは、this blogを指すbefore on StackOverflowを、カバーしてきたが、答えは次の操作を行うことです:[の

tabBarController.moreNavigationController.navigationBar.tintColor = 
[UIColor orangeColor]; 
+0

ああ、それは素晴らしい美しさのことです、ありがとう:)私は尋ねる前に私が探しに行った前の投稿を見つけませんでした。 – Pedro

+0

これはすべてを暗くします。背景色を薄くしたいだけの場合はどうすればいいですか? – jjxtra

1

UINavigationBarにカテゴリを追加し、-drawRectを上書き:?

+0

私はその結果を編集に入れてみました。 – Pedro

+0

これは '-drawRect:'をわかりやすくオーバーライドする方法ではありません。これは一般的に「メソッドスウィズル」と呼ばれるものがあります(これは伝統的に 'method_exchangeImplementations()'を呼びます)。スーパーコールがクラス内の元の実装ではなくスーパークラスの実装を呼び出すため、これを行う必要があります。色合いを設定して元の実装を呼び出すことができると思っていました。 –

関連する問題