Необходимо переключить представления для "[[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]];
}
Так как у меня нет никаких кнопок на экране, я просто изменил одну из функций делегата таблицы.