В моем приложении iPad у меня есть представление настроек приложения. Один из параметров позволяет пользователю переключаться с цветовой схемой интерфейса. Представление настроек загружается segue в отдельный контроллер просмотра, чем мое "основное" окно приложения.
Когда они выбирают новый цвет, я переключаю переменную colorSchemeColor и делаю это:
// set the colors and refresh the view
[[UINavigationBar appearance] setBarTintColor:colorSchemeColor];
[[UIToolbar appearance] setBarTintColor:colorSchemeColor];
[[UITabBar appearance] setBarTintColor:colorSchemeColor];
Однако ни один из баров не меняет цвет, пока не выйду из окна настроек! (Когда окно настроек исчезает, цвета для основного приложения меняются правильно!)
Итак, я попытался поместить этот код сразу после обновления представления настроек:
[self.view setNeedsDisplay];
[self.view setNeedsLayout];
что не помогло. Поэтому я добавил также:
[self.navigationController.view setNeedsDisplay];
[self.navigationController.view setNeedsLayout];
Это тоже не сработало.
Как я могу получить представление настроек для "перерисовать" себя при выборе нового цвета, чтобы изменение стало очевидным?
Большое спасибо!