ナビゲーションコントローラー内の戻るボタンの色合いを設定しようとしていますが、何も機能していません。私が試してみました
[self.navigationController.backBarButtonItem setTintColor:myColor];
//myColor was previously set
しかし、それはデフォルトの色合いのままです
ナビゲーションコントローラー内の戻るボタンの色合いを設定しようとしていますが、何も機能していません。私が試してみました
[self.navigationController.backBarButtonItem setTintColor:myColor];
//myColor was previously set
しかし、それはデフォルトの色合いのままです
barButtonItemは読み取り専用だと思います。(私はこれについてあまりよくわかりません、私が間違っているなら誰かが私を訂正します)
これらのボタンに色合いを与えるために、これは私がすることです:
App Delegateに、次のコード行を追加します。
UIBarButtonItem *barButtonAppearance = [UIBarButtonItem appearance];
[barButtonAppearance setTintColor:[UIColor redColor]]; // Change to your colour
最初の行は外観プロキシを設定しているので、コードを少なくしたい場合は、これも機能すると思います。
[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];
これがあなたのために働くことを願っています!(これにより、UIBarButtonItemのすべてのインスタンスが変更されます)
UINavigationItemの色合いを直接変更することはできません。ナビゲーションバーの色合いを変更する必要があり、バーボタンの色が自動的に変更されます。
これらの行をviewWillAppearメソッドに追加します
[[self.navigationController navigationBar] tintColor] = [UIColor myColor];
または、カスタムボタンを作成して、UIBarButtonItemを次のように初期化できます。
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:yourUIButton];
これは私のために働いた。
[self.navigationController.navigationBar setTintColor:[UIColor redColor]];
それは2番目の答えと非常に似ています...
コードを記述せずにInterfaceBuilderでそれを実行したい場合:
leftBarButtonItemを実装すると、スワイプして戻るなどの組み込みの戻るナビゲーションジェスチャが無効になるため、この方法で戻るボタンの外観を設定することが重要です。leftBarButtonItemを実装しようとしないでください。
迅速な方法:
ナビゲーション内のすべてのアイテムを変更します。
AppDelegateで、次のようにします。
let navControl = UINavigationBar.appearance()
navControl.tintColor = UIColor.grayColor()
確かに、戻るボタンだけ、またはナビゲーションバーの任意のバーボタンの色を変更することができます。これを行うための小さなスニペットを次に示します。
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonItemStylePlain target:self action:nil];
backButton.tintColor = [UIColor blackColor];
[self.navigationItem setBackBarButtonItem:backButton];
[backButton release];
これは、これを行う方法の1つにすぎません。これがお役に立てば幸いです!! その答えはすでに受け入れられていることは知っていますが、適切なスニペットを与えることを考えました。乾杯!!!ハッピーコーディング!!
事前定義されたスタイルに設定する場合は、次を使用できます
[navigationBar setBarStyle: UIBarStyleBlack];
次のコードをAppDelegateに配置して、戻るボタンの色をグローバルに設定します
//Set color of BackButtonItem globally
[[UIBarButtonItem appearance] setTintColor:[UIColor colorWithRed:5.0/255.0
green:127.0/255.0 blue:173.0/255.0 alpha:1.0]];
これはiOS5以降でサポートされています
それはいつも私のために働きます:
self.navigationItem.leftBarButtonItem = [self logicToAddBackButton];
デフォルトのバックボタンを取得
-
(UIBarButtonItem*) logicToAddBackButton
{
UIImageView *imageView;
// [imageView setTintColor:[UIColor redColor]];
UILabel *label=[[UILabel alloc] init];
if (WHITEBACK) {
imageView =[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"UiNavigationBackIPAD"]];
[label setTextColor:[UIColor whiteColor]];
}else{ //DEFAULTBACK
imageView =[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"UiNavigationBack"]];
[label setTextColor:[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0]];
}
[label setText:@"Back"];
[label sizeToFit];
int space=6;
label.frame=CGRectMake(imageView.frame.origin.x+imageView.frame.size.width+space,
label.frame.origin.y, label.frame.size.width,
label.frame.size.height);
UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0, label.frame.size.width+imageView.frame.size.width+space,
imageView.frame.size.height)];
view.bounds=CGRectMake(view.bounds.origin.x+8, view.bounds.origin.y-1, view.bounds.size.width,
view.bounds.size.height);
UIButton *button=[[UIButton alloc] initWithFrame:CGRectMake(view.bounds.origin.x, view.bounds.origin.y,
view.bounds.size.width, view.bounds.size.height)];
button.bounds=CGRectMake(view.bounds.origin.x, view.bounds.origin.y, view.bounds.size.width,
view.bounds.size.height);
[button addTarget:self action:@selector(eventBack) forControlEvents:UIControlEventTouchUpInside];
[button addSubview:imageView];
[button addSubview:label];
[UIView animateWithDuration:0.33 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
label.alpha = 0.0;
CGRect orig=label.frame;
label.frame=CGRectMake(label.frame.origin.x+25, label.frame.origin.y -5, label.frame.size.width,
label.frame.size.height+10);
label.alpha = 1.0;
label.frame=orig;
} completion:nil];
UIBarButtonItem *backButton =[[UIBarButtonItem alloc] initWithCustomView:button];
return backButton;
}
バックボタンアクション
(void)eventBack {[self.navigationController popViewControllerAnimated:YES]; }
UiNavigationBack Image(デフォルトの外観を得るには、同じサイズ[25X41 144pixels / inch]で必要に応じて画像の色を変更してください)
私のために働いたのはこれでした:
self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor textPrimaryColor] forKey:NSForegroundColorAttributeName];