Atualização da aparência do UINavigationBar?

No meu aplicativo para iPad, tenho uma visualização das configurações do aplicativo. Uma das opções permite que o usuário alterne o esquema de cores da interface. A visualização de configurações é carregada seguindo-se para um controlador de visualização separado da janela do meu aplicativo "principal".

Quando eles escolhem uma nova cor, alterno a variável colorSchemeColor e faço isso:

// set the colors and refresh the view
[[UINavigationBar appearance] setBarTintColor:colorSchemeColor];
[[UIToolbar appearance] setBarTintColor:colorSchemeColor];
[[UITabBar appearance] setBarTintColor:colorSchemeColor];

No entanto, nenhuma das barras muda de cor até eu sair da visualização de configurações! (Quando a janela de configurações desaparece, as cores do aplicativo "principal" mudam corretamente!)

Então, tentei colocar esse código logo depois para atualizar a exibição de configurações:

[self.view setNeedsDisplay];
[self.view setNeedsLayout];

o que não ajudou. Então eu adicionei isso também:

[self.navigationController.view setNeedsDisplay];
[self.navigationController.view setNeedsLayout];

Isso também não funcionou.

Como faço para que minhas configurações sejam "redesenhadas" quando a nova cor é escolhida para que a alteração seja instantaneamente óbvia?

Muito obrigado!

questionAnswers(3)

yourAnswerToTheQuestion