2013-10-09 3 views
-1

Я нахожу некоторые ситуации, когда Global Tint, установленный в MainStoryboard, не распространяется на какой-то суб UIViews.iOS7 Глобальный оттенок, не влияющий на UIToolbar

Пример случай просто начать с шаблоном заявкой от «MasterDetail» и показать UIToolbar в MasterViewController, добавив:

-(void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [self.navigationController setToolbarHidden:NO animated:YES]; 
} 

Любых элементы я добавить на панель инструментов появится в отливе системы по умолчанию, а не мой пользовательский глобальный оттенок.

Есть ли у кого-нибудь проблемы с этим? Кто-нибудь нашел исправление? Спасибо. enter image description here

ответ

0

Я нашел обходной путь.

Установите «глобальный оттенок» в коде, установив оттенок UIWindow, и все будет работать.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 

    [[[application windows] lastObject] setTintColor:[UIColor greenColor]]; 

    return YES; 
} 

Таким образом, несмотря на документации Apple, заявив, что установка Global Оттенок для всего приложения, есть явно проблема с этим, и вам необходимо установить его в коде на UIWindow.

+1

Лучше получить окно с помощью [[[UIApplication sharedApplication] delegate] window] (или просто self.window, если вызвано из делегата приложения). У UIAlertViews есть собственное окно, поэтому вы не знаете, что может быть [[window windows] lastObject], если предупреждение появляется в неподходящий момент. –

0

По какой-то причине это не работает на панелях инструментов, я столкнулся с той же проблемой.

Однако вы можете изменить внешний вид (фон не tini по какой-либо причине) всех uitoolbars из AppDelegate, он работает как шарм.

Успехов, нужна дополнительная помощь, дайте мне знать, D

+0

Спасибо, хотя я не хочу менять фон. –

Смежные вопросы