Необходимо переключить представления для "[[UINavigationBar Appearance] setBarTintColor:[UIColor darkGrayColor]];" работать

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

[[UINavigationBar appearance] setBarTintColor:[UIColor darkGrayColor]];

Спасибо

2 ответа

Причина ошибки:

[[UINavigationBar appearance] setBarTintColor:[UIColor randomColor]]; не работает, потому что UIViewController был инициализирован!!!

Решение:

(1) Пользователь UIAppearance для установки глобального эффекта в функции AppDelegate didFinishLaunch.

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    [[UINavigationBar appearance] setBarTintColor: [UIColor redColor]];
    return YES;
}

(2) Что касается инициализированного UIViewController, вы должны использовать self.navigationController.navigationBar для установки цвета, что также может повлиять на жизненный цикл приложения.

[self.navigationController.navigationBar setBarTintColor:[UIColor randomColor]];
UINavigationBar *navBar=self.navigationController.navigationBar;
[navBar setBarTintColor:[UIColor darkGrayColor]];

Попробуй это

Вот как я это проверил.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UINavigationBar *navBar=self.navigationController.navigationBar;
    [navBar setBarTintColor:[UIColor darkGrayColor]];
}

Так как у меня нет никаких кнопок на экране, я просто изменил одну из функций делегата таблицы.

Другие вопросы по тегам