1

Я пытаюсь изменить цвет backBarButtonItem на панели навигации в моем приложении (iOS 9+).iOS - Изменение только цвета backBarButtonItem текста на панели навигации

я могу сделать это с помощью:

[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor clearColor]} forState:UIControlStateNormal]; 

Но это изменит цвет для всех UIBarButtonItems на панели навигации, и я только хочу, чтобы изменить кнопку назад.

Я попытался:

[self.navigationItem.leftBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor clearColor]} forState:UIControlStateNormal]; 

и

[self.navigationItem.leftBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor clearColor]} forState:UIControlStateNormal]; 

Но это не работает

ПРИМЕЧАНИЕ: Я хочу, чтобы держать < стрелку системы кнопку назад, так используя пользовательский вид не является вариантом, если я не пользуюсь настраиваемым изображением

+0

вы можете использовать настраиваемое представление, если это возможно –

+0

@MikeAlter прав мы можем использовать пользовательские просмотра UIBarButtonItem * barButtonItem = [[UIBarButtonItem Alloc] initWithCustomView: yourUIButton] –

+0

Невозможно просто изменить цвет определенного элемента панели на панели навигации? – Zigglzworth

ответ

0

Согласно моей публикации комментариев sa mple код

UIButton *useButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    useButton.frame = CGRectMake(0, 0, 20,17); 
    useButton.layer.masksToBounds = NO; 
    useButton.layer.shadowOffset = CGSizeMake(3, 3); 
    useButton.layer.shadowRadius = 3; 
    useButton.layer.shadowOpacity = 0.1; 
    useButton.layer.shadowColor = [UIColor blackColor].CGColor; 
    useButton.backgroundColor = [UIColor clearColor]; 
    useButton.tintColor = [UIColor whiteColor]; 
    [useButton setImage:[UIImage imageNamed:@"image if any"] forState:0]; 
    [useButton addTarget:self action:@selector(btnBackTapped:) forControlEvents:UIControlEventTouchUpInside]; 

    [self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:useButton]]; 

`

+0

Это не будет использовать обратное изображение кнопки – Zigglzworth

0

В конце концов я использовал следующее решение:

1. Установите общий вид UIBarbuttonitem ПЕРЕД добавления правой панели кнопок пункт

[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor blueColor]} forState:UIControlStateNormal]; 
в

2. Затем se t элемент правой кнопки и его внешний вид

0

Слишком поздно, но вы пытались установить tintColor? Я не знаю синтаксис, но в стрижа это будет:

navigationController.navigationBar.tintColor = UIColor.COLOR