Получать глобальный цвет оттенка из кода

Есть ли способ получить глобальный цвет оттенков из моего проекта по коду? Чтобы избежать недоразумений, я имею в виду глобальный цвет оттенка, который я могу установить в Инспекторе файлов.

Ответ 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;