Estou definindo o título do meu controlador de visualização como este em visualização carregou:
self.title = @"my title";
antes disso, defino o título nos storyboards para o controlador de visualização e o controlador de navegação em que está embutido. Defino-o como: "Título";
Quando clico na guia que contém o controlador de visualização, o título do item da barra de guias uiviewcontroller
muda para: meu título
Gostaria que o controlador de visualização mudasse, mas o item da barra de guias permanecesse com o título: Título
Como posso fazer isso?
Então, para aqueles que ainda não entenderam (como eu)
self.navigationItem.title = @"my title";
define o título da barra de navegação .self.tabBarItem.title = @"my title";
define o título da barra da guia .self.title = @"my title";
define ambos .fonte
Rápido
Definir título da barra superior
Definir título do item da guia
Defina os dois títulos
fonte
topItem
?Para Swift use isso,
fonte
Nota: Se você tiver um controlador de barra de guias com controladores de navegação na raiz de cada controlador de visualização, definir o item da barra de guias nos controladores de visualização não afetará o título se você estiver configurando o
navigationItem.title
. Em vez disso, você precisará definir otabBarItem
no controlador de navegação para que ele seja obtido no controlador da barra de guias.Nenhuma das respostas postadas por outras pessoas funcionou para mim porque todos os controladores de visualização da minha barra de guias têm controladores de navegação em sua raiz - este é um padrão de hierarquia comum para
UITabBarController
. Você deve definir o controlador de navegaçãotabBarItem
para fazer com que o título seja mostrado de forma diferente donavigationItem
título deVocê pode criar seus
tabBarItem
e associá-los ao seu VC diretamente.Então você terá algo assim:
Mas isso deve ser alterado para o seguinte para obter o já associado
tabBarItem
do controlador de visualização e configurá-lo no controlador de navegação automaticamente.Agora você poderá ter um título diferente (definido em seu VC), separado do título definido para seu
tabBarItem
.fonte
Bem tarde para isso. Você poderia ter seu TabBarController servindo como UITabBarControllerDelegate e UINavigationControllerDelegate para si mesmo e os controladores de navegação embutidos em cada uma de suas guias, respectivamente.
.h:
.m:
Com base em alguns testes rápidos, parece que essas duas ações delegadas devem abranger todos os casos soltos e atualizarão o título se você estiver alternando as guias ou navegando em seu controlador de navegação. Para completar, você poderia atualizar seu título em didShowViewController também, mas com base no que vi, não acho que seja necessário.
fonte
Provavelmente um pouco tarde (mas).
Definir o título de um VC altera o título da Navegação E da barra de guias. (se o VC já estiver conectado a ambos).
Se você quiser ter títulos separados, você precisa defini-los manualmente, você normalmente define o título para o VC e, em seguida, especificamente o título do tabBarItem, já que é uma propriedade do
fonte
Swift 4.2
Aqui está, criei uma extensão para UIViewController:
E então do seu controlador:
fonte