Estou tentando alterar a seta do botão Voltar
Atualmente, estou usando o seguinte para controlar o tamanho do texto e a cor do texto no botão Voltar:
[[UIBarButtonItem appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], UITextAttributeTextColor,
[UIFont boldSystemFontOfSize:16.0f], UITextAttributeFont,
[UIColor darkGrayColor], UITextAttributeTextShadowColor,
[NSValue valueWithCGSize:CGSizeMake(0.0, -1.0)], UITextAttributeTextShadowOffset,
nil] forState:UIControlStateNormal];
mas se eu quiser alterar apenas a cor da seta para o botão Voltar, o que devo fazer?
UINavigationBar
foi alterado no iOS 7. Dê uma olhada na resposta para ver também o efeito de algumas outras propriedades .Respostas:
Para alterar a cor da divisa do botão Voltar para um controlador de navegação específico *:
* Se você estiver usando um aplicativo com mais de um controlador de navegação e desejar que essa cor da divisa se aplique a cada um, convém usar o proxy de aparência para definir a divisa do botão voltar para cada controlador de navegação, da seguinte maneira:
E, por uma boa medida, rapidamente (graças a Jay Mayu nos comentários):
fonte
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
Você precisa definir o tintColor de todo o aplicativo.
Ou no Swift 3:
Fonte: Guia de transição da interface do usuário do iOS 7
fonte
UITextField
. Definitivamente não é recomendado.Você pode definir a cor em toda a barra de navegação do aplicativo usando o método
fonte
É possível alterar apenas a cor da seta (não a cor do título do botão voltar) desta maneira:
A barra de navegação contém uma subvisão do tipo _UINavigationBarBackIndicatorView (último item na matriz de subvisões) que representa a seta.
O resultado é uma barra de navegação com cores diferentes da seta do botão voltar e do título do botão voltar
fonte
self.navigationController.navigationBar.subviews
até que o botão voltar seja encontrado.Se você estiver usando storyboards, poderá definir a cor da barra de navegação.
fonte
Dentro do rootViewController que inicializa o navigationController, coloquei esse código no meu método viewDidAppear:
fonte
No iOS 6, o tintColor tingia o fundo das barras de navegação, barras de guias, barras de ferramentas, barras de pesquisa e barras de escopo. Para colorir um fundo de barra no iOS 7, use a propriedade barTintColor.
Recursos de design do iOS 7 Guia de transição da interface do usuário do iOS 7
fonte
Você pode definir a
tintColor
propriedade no botão (ou item do botão de barra) ou na visualização do controlador de exibição. Por padrão, a propriedade herdará a tonalidade da visualização pai, até o nível superiorUIWindow
do seu aplicativo.fonte
Eu tive que usar os dois:
E funciona para mim, obrigado por todos!
fonte
fonte
Atualização Swift 3
Resultado:
fonte
Apenas para alterar a
NavigationBar
cor, você pode definir a cor da tonalidade como abaixo.fonte
Caso você esteja criando um botão voltar personalizado com base no UIButton com imagem de seta, aqui está o trecho da subclasse. Com ele, você pode criar um botão no código ou apenas atribuir uma classe no Interface Builder a qualquer UIButton. Seta para trás A imagem será adicionada automaticamente e colorida com a cor do texto.
fonte
Se você deseja alterar apenas a Seta para trás, MAS no aplicativo inteiro, faça o seguinte:
fonte
No iOS 7, você pode inserir a seguinte linha de código
application:didFinishLaunchingWithOptions:
em seuAppDelegate.m
arquivo:Defina
myColor
a cor em que você deseja que o botão Voltar esteja em todo o aplicativo. Não há necessidade de colocá-lo em todos os arquivos.fonte
Swift 2.0: barra de navegação para colorir e botões
fonte
No swift 3, para alterar a cor da seta do botão Voltar do UIBarButton
fonte