Propriedade persistente da direita Buttonitem de UinavigationItem
-
03-07-2019 - |
Pergunta
Esta pode ser uma pergunta estúpida, mas é possível manter o direito UIBarButtonItem
em várias visualizações gerenciadas por um UINavigationController
? Eu tenho uma progressão de visualizações que geralmente compartilham o mesmo direito UIBarButtonItem
, mas quando eu pressiono uma nova vista para o meu UINavigationController
, Tenho que redefinir o botão sempre, mesmo que não tenha mudado. Principalmente, a notável animação de transição de uma visão para a outra é o que me incomoda porque exatamente o mesmo botão desaparece brevemente e depois de volta, o que é desnecessário, pois não há mudança visual real. Devo considerar apenas adicionar um UIButton
Como uma subjeconia do meu UINavigationBar
e realizar um efeito "botão de barra correta" dessa maneira?
Solução
Fizemos isso em nosso aplicativo. Criamos um único uibarbuttonitem que trocamos de um UIViewController para outro à medida que o usuário navega. O truque era usar o UinavigationControllerDelegate, o NavigationController: WillSowViewController: Animated: Method. Definimos o RightButtonitem do UiviewController de saída para o NIL e o Buttonitem do controlador de entrada no seu botão. É uma dor de gerenciar, mas funciona.
Outras dicas
O uibarbuttonItems pode ser criado como instâncias independentes em um arquivo NIB/XIB. Se não houver nada de especial que o impeça de construir o botão no interface Builder, você deve conectá -lo à propriedade RightBarbuttonitem do UinavigationItem para cada controlador de exibição que precisa reutilizar o botão. Nenhum objetivo C precisava.