47

ストーリーボードを使用するプロジェクトがあり、ビュー コントローラーをセグエでプッシュするたびに、動的に作成されたバー ボタン アイテムが常に青色になります。

ここに画像の説明を入力

それは私を夢中にさせています。このオブジェクトは動的に作成されるため、IB でその色を設定することはできません (以前のバー ボタン アイテムで行ったように)。

私が試した解決策には次のものがあります。

  1. 受信機にセットしますviewDidLoad
  2. 受信機にセットしますviewDidAppear

    self.navigationItem.backBarButtonItem.tintColor = [UIColor whiteColor];

  3. それがうまくいかないことがわかったので、代わりに leftBarButtonItem を設定してみました。

self.navigationItem.leftBarButtonItem.tintColor = [UIColor whiteColor];

  1. 新しいビューが呼び出されたとき、新しいビューをプッシュする前に、アプリのデリゲートで次のコード(他のSOの回答から取得したもの)を試しました:

    [[UIBarButtonItem appearance] setTintColor:[UIColor whiteColor]];

私が見つけたすべてのGoogleの回答は、上記のコードを使用することを推奨していますが、私にとってはまったく機能していません. iOS 7 の外観 API にいくつかの変更があるのでしょうか? 「Categorías」をどこでどのように白に設定しようとしても、常にデフォルトの青です。

4

8 に答える 8

85

iOS 7 で、アプリ内のすべての barButtonItems の色を設定するには、AppDelegate でtintColorアプリケーションのウィンドウにプロパティを設定します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window.tintColor = [UIColor whiteColor];
    return YES;
}

詳細については、Apple の iOS 7 UI 移行ガイド(具体的には、「Tint Color の使用」セクションの下) を参照してください。

***また***

いくつかのコメントに基づいて、UINavigationBar 外観プロキシを使用してこれを実現することもできます。これは、ウィンドウに tintColor を設定してそのウィンドウのすべてのサブビューに影響を与えるのではなく、UIBarButtonItems のみの tintColor に影響を与えます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    if([UINavigationBar conformsToProtocol:@protocol(UIAppearanceContainer)]) {
        [UINavigationBar appearance].tintColor = [UIColor whiteColor];
    }

    return YES;
}
于 2013-10-21T20:56:10.523 に答える
25

UINavigationBar のプロパティを探していると思います。設定してみるself.navigationController.navigationBar.tintColor = [UIColor whiteColor];

「ナビゲーション バーの外観」セクションを参照してください。

于 2013-10-21T20:57:42.907 に答える
3

ナビゲーション バーの特定のアイテム (ボタンなど) の色を変更するには: Objective-C の場合

myButton.tintColor = [UIColor redColor];
于 2017-09-29T23:21:43.070 に答える
2

iOS 8 では、UIAlertView のブランディングなど、何らかの目的で UIView の色合いを変更した場合、UIToolBar の UIBarButtonItem の色合いもそのように変更されました。これを修正するには、このコードを書くだけです

[UIView appearance].tintColor = SOME_COLOR;
[UIView appearanceWhenContainedIn:[UIToolbar class], nil].tintColor = BLACK_COLOR;

UINavigationBar の UIBarButtonItem 色合いの色には、標準の方法を使用します

[UINavigationBar appearance].tintColor = BLACK_COLOR;
于 2015-11-17T12:26:37.223 に答える
0
UITabBar.appearance().tintColor = UIColor.yellowColor()
于 2015-08-03T11:36:32.593 に答える