2015-05-20 3 views
0

Я пытаюсь изменить цвет текста кнопки для некоторых видов. Я могу изменить цвет стрелки, но текст не изменит оттенок. Я пробовал:Обратный текст кнопки не изменится tint

NSDictionary *dictionary = @{NSForegroundColorAttributeName : [UIColor redColor], NSShadowAttributeName : shadow, NSFontAttributeName : font}; 

[self.navigationItem.backBarButtonItem setTitleTextAttributes:dictionary forState:UIControlStateNormal]; 

Я также попытался:

NSString *backText = self.navigationItem.backBarButtonItem.title; 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:backText style:UIBarButtonItemStylePlain target:nil action:nil]; 
NSDictionary *dictionary = @{NSForegroundColorAttributeName : [UIColor redColor], NSShadowAttributeName : shadow, NSFontAttributeName : font}; 
[backButton setTitleTextAttributes:dictionary forState:UIControlStateNormal]; 
self.navigationItem.backBarButtonItem = backButton; 

У меня есть глобальный оттенок, установленный в раскадровку. Он должен переопределить его, правда?

Как я могу получить текст для изменения?

ответ

1

Вы пытались изменить оттенок панели навигации? В раскадровке перейдите в UINavigationController. В схеме выберите панель навигации. Затем в Инспекторе атрибутов измените цвет оттенка (в разделе «Вид»). Это изменяет цвет кнопки возврата по умолчанию.

+0

Я просто пробовал это, и он действительно работает, но я хочу иметь другой цвет текста кнопки для разных экранов в том же стеке навигации. Стрелка изменяется, но не текст. – Siriss

+0

В 'viewWillAppear' do' self.navigationController.navigationBar.tintColor = '; –

+0

Пробовал и не использовал. Я пробовал все, что мог придумать. Я не настраиваю оттенок, кроме моего глобального оттенка в раскадровке, но это должно переопределить это. – Siriss

1

Вы пробовали?

[self.navigationController.navigationBar setTintColor:[UIColor redColor]]; 

Вы можете добавить эту строку под AppDelegate.m под -(BOOL)application:application didFinishLaunchingWithOptions:launchOptions в моем случае я использую UINavigationController программно по какой-то причине ..

так мое смотрит что-то вроде этого ..

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    //..codes 
    [self.navController.navigationBar setTintColor:[UIColor yourColor]];//fontColor 
    //..codes 
} 

в то время как в раскадровка вы можете найти ее под заголовком Вид> Утилиты> Показать инспектора атрибутов> Просмотр> Оттенок .. Измените co там, и вот оно ..

Эй! Я пробовал ваш код! :) и она работает очень хорошо для меня .. я думаю, вы просто неуместны код ...

DonT место вам код в текущих viewcontrollers -viewDidLoad добавить его в ViewController перед ним ..

что-то вроде этого .. //firstViewController.m

- (void)viewDidLoad 
{ 
    //place your code here.. 
} 

и вы увидите эффект на //secondViewController.m

+0

Я не думаю, что вы хотите поместить его в viewDidLoad, так как если вы двигаетесь назад и вперед между контроллерами представлений, вы хотите обновлять цвет каждый раз, когда появляется представление. –

+0

О да .. ха-ха .. Я просто скопировал код из моего проекта .. с разным цветом на viewcontroller ... я отредактирую его .. :) – 0yeoj

+0

Да, это работает, когда я положил его в prepareForSegue. Интересно, есть ли ошибка с глобальным цветом оттенка и унаследована в раскадровке. Я пытаюсь сыграть с несколькими вещами. – Siriss

0

Итак, ответ заключался в том, что этот код вставлялся в prepareForSegue предыдущего класса в стеке навигации.

NSString *backText = self.navigationItem.backBarButtonItem.title; 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:backText style:UIBarButtonItemStylePlain target:nil action:nil]; 
NSDictionary *dictionary = @{NSForegroundColorAttributeName : <My Color Here>, NSShadowAttributeName : shadow, NSFontAttributeName : font}; 
[backButton setTitleTextAttributes:dictionary forState:UIControlStateNormal]; 
self.navigationItem.backBarButtonItem = backButton; 

Это похоже на действительно очень плохой путь. Есть ли ошибка в Inherited in Storyboard или что-то в этом роде? Я постараюсь узнать больше.

Смежные вопросы