Não há nada de errado com as outras respostas. Estou apenas compartilhando a versão do storyboard para definir a fonte.
1. Selecione sua barra de navegação no seu controlador de navegação
2. Altere a fonte do título no Inspetor de atributos
(Você provavelmente precisará alternar a tonalidade da barra para a barra de navegação antes que o Xcode escolha a nova fonte)
Notas (advertências)
Verificado que isso funciona no Xcode 7.1.1+. ( Veja os exemplos abaixo )
- Você precisa alternar a tonalidade da barra de navegação antes que a fonte entre em vigor (parece um bug no Xcode; você pode voltar ao padrão e a fonte manterá)
- Se você escolher uma fonte do sistema ~ Certifique-se de que o tamanho não seja 0,0 (caso contrário, a nova fonte será ignorada)
- Parece que isso funciona sem problemas quando apenas uma NavBar está na hierarquia de visualização. Parece que NavBars secundárias na mesma pilha são ignoradas. (Observe que se você mostrar a navBar do controlador de navegação mestre, todas as outras configurações personalizadas da navBar serão ignoradas).
Gotchas (deux)
Alguns deles são repetidos, o que significa que muito provavelmente vale a pena notar.
- Às vezes, o xml do storyboard fica corrompido. Isso requer que você reveja a estrutura no Storyboard como modo de Código-fonte (clique com o botão direito do mouse no arquivo do storyboard> Abrir como ...)
- Em alguns casos, a tag navigationItem associada ao atributo runtime definido pelo usuário foi definida como um filho xml da tag view em vez da tag do controlador da view. Se assim for, remova-o de entre as tags para uma operação adequada.
- Alterne a tonalidade da NavBar para garantir que a fonte personalizada seja usada.
- Verifique o parâmetro de tamanho da fonte, a menos que use um estilo de fonte dinâmico
- A hierarquia de visualização substituirá as configurações. Parece que uma fonte por pilha é possível.
Resultado
Amostras
- Vídeo mostrando várias fontes em projeto avançado
- Download de fonte simples
- Download avançado do projeto ~ Mostra várias fontes NavBar e solução alternativa para fontes personalizadas
- Vídeo mostrando várias fontes e fontes personalizadas
Tratamento de fontes personalizadas
Observação ~ Uma boa lista de verificação pode ser encontrada no site Code With Chris e você pode ver o exemplo de projeto de download.
Se você tem sua própria fonte e deseja usá-la em seu storyboard, há um conjunto decente de respostas na seguinte pergunta do SO . Uma resposta identifica essas etapas.
- Obtenha seu arquivo de fonte personalizada (.ttf, .ttc)
- Importe os arquivos de fonte para o seu projeto Xcode
- No app-info.plist, adicione uma chave chamada Fonts fornecida pelo aplicativo. É um tipo de array, adicione todos os seus nomes de arquivo de fonte ao array, nota: incluindo a extensão do arquivo.
- No storyboard, na NavigationBar vá para o Attribute Inspector, clique com o botão direito do ícone da área de seleção de fonte. No painel pop-up, escolha Font to Custom e escolha o nome da família da fonte incorporada.
Solução alternativa de fonte personalizada
Portanto, o Xcode naturalmente parece que pode lidar com fontes personalizadas no UINavigationItem, mas esse recurso não está sendo atualizado corretamente (a fonte selecionada é ignorada).
Para contornar isso:
Uma maneira é corrigir o uso do storyboard e adicionar uma linha de código: Primeiro adicione um UIView (UIButton, UILabel ou alguma outra subclasse UIView) ao Controlador de Visualização (Não ao Item de Navegação ... O Xcode não está permitindo atualmente aquele). Depois de adicionar o controle, você pode modificar a fonte no storyboard e adicionar uma referência como uma saída para o seu View Controller. Basta atribuir essa visualização ao UINavigationItem.titleView. Você também pode definir o nome do texto no código, se necessário. Bug relatado (23600285).
@IBOutlet var customFontTitleView: UIButton!
//Sometime later...
self.navigationItem.titleView = customFontTitleView
fonte