Есть ли способ получить глобальный цвет оттенков из моего проекта по коду? Чтобы избежать недоразумений, я имею в виду глобальный цвет оттенка, который я могу установить в Инспекторе файлов.
Получать глобальный цвет оттенка из кода
Ответ 1
В делегате приложения вы можете установить его
UIColor *globalTint = [[[UIApplication sharedApplication] delegate] window].tintColor;
Ответ 2
Легко.
Цель C:
UIColor *tintColor = [[self view]tintColor];
Swift:
let tintColor = self.view.tintColor;
Для этого нужно установить tintColor в приложении. Если вы измените его, это свойство должно обновиться. Это предполагает, что вы находитесь внутри viewController или подкласса одного и что вы не переопределили tintColor в каком-то супервисте между этим представлением и окном.
Обновление. Обратите внимание, если вы пытаетесь получить цвет оттенка контроллера вида, который не был добавлен в окно, тогда у него не будет цвета пользовательского оттенка, поскольку этот цвет наследуется от объекта окна. Thanx @ManuelWa для указания этого в комментариях.
Ответ 3
[UIApplication sharedApplication].delegate.window.rootViewController.view.tintColor
Кажется, работает.
Ответ 4
Максимальный ответ правильный, но я узнал, что вы должны получить окно navigationController:
self.navigationController.view.window.tintColor = [UIColor redColor];
Однако обратите внимание, что это не сработает, если вы вручную установили tintColor из Storyboard. Значение из Storyboard будет использоваться, если вы это сделали. Я написал об ошибке с Apple. Я думаю, что этот код нельзя игнорировать, даже если мы установили tintColor из Storyboard.
Ответ 5
[UIApplication sharedApplication].keyWindow.tintColor;