4

UIViewControllerをプッシュするナビゲーションコントローラーがあります。ユーザーが特定のボタンを押したときのナビゲーションアイテムの戻るボタンの色合いを変更したいのですが。これは可能ですか?使用してみ[UIBarButtonItem appearance] setTintColor:ましたが、初期化(たとえば、viewDidLoad)でのみ機能し、それ以外の場合は機能しません。

4

5 に答える 5

7

これを試して......

カスタムビューでUIBarButtonItemを使用する必要があります。このようなもの:

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 70, 30)];
[button addTarget:target action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:[UIImage imageNamed:@"back_button.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"back_button_tap.png"] forState:UIControlStateHighlighted];
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

そして、ボタンをナビゲーションバーに配置します。通常は、UINavigationControllerを備えたコントローラーに配置します。

self.navigationItem.leftBarButtonItem = buttonItem;
于 2012-09-13T14:09:24.877 に答える
7

私にとって最も簡単なことは、すべてのuibarbuttonアイテムの色合いを設定することでした。

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

次に、作成してナビゲーションバーに配置する明示的なナビゲーションボタンの色合いを他の色に明示的に設定します...

色合いを変更するだけでカスタムバックボタンを作成する手間が省けます。

于 2013-05-16T10:10:08.730 に答える
3

ボタンクリックで呼び出されるメソッドに、[self.navigationItem.backBarButtonItem setTintColor:[UIColor *whateverColorYouWant*]];を入力するだけです。私はそれをテストしていませんが、99%はそれがうまくいくと確信しています

編集: テストしたばかりで、動作します。

于 2012-09-13T14:19:49.920 に答える
0

戻るボタンのテキストと色を変更するコードは次のとおりです。

- (void)viewDidLoad
{
    UIBarButtonItem *backButton = [UIBarButtonItem new];
    [backButton setTitle:@"Back"];
    [backButton setTintColor:[UIColor yellowColor]];
    [[self navigationItem] setBackBarButtonItem:backButton];
}
于 2012-10-10T15:16:29.213 に答える
0

これを試して:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class],[UIToolbar class], nil] setTintColor:[UIColor redColor]];
于 2013-05-22T06:51:01.613 に答える