Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reúso de ViewControllers em Storyboards

Reúso de ViewControllers em Storyboards

Apresentação sobre Reúso de ViewControllers em Storyboards

Inácio Ferrarini

November 29, 2016
Tweet

More Decks by Inácio Ferrarini

Other Decks in Programming

Transcript

  1. Inácio Ferrarini - https:/ /github.com/inacioferrarini - Programador Java desde 2004

    - OCPJD 6, OCPWCD 5 - Programador iOS desde 2014 - Graduado em Sistemas de Informação pela FRB (2008) - Pós-Graduado em Desenvolvimento de Aplicativos e Games para Dispositivos Móveis pela FIAP (2015) - Contribuinte Open Source - Autor do POD York
  2. "Todo View Controller deveria ter um delegate" Artigo escrito pelo

    Diogo Tridapalli. Essencialmente, aponta a necessidade de que um View Controller não deve se preocupar com o próximo View Controller. Necessidade desencadeada pela mecânica de segues: override func performSegue(withIdentifier identifier: String, sender: Any?) override func prepare(for segue: UIStoryboardSegue, sender: Any?)
  3. Storyboards Ideal para mecânica de fluxo. Possibilita um entendimento visual

    da forma como os View Controllers se relacionam. Não é adequado para conter todas os View Controllers de um Projeto. No início, efeito colateral de se poder ter apenas um Storyboard para o projeto inteiro. Após iOS 9, passou a possibilitar múltiplos Storyboards em um mesmo projeto.
  4. Storyboards - Cont. Seria melhor se não impusesse a mecânica

    de segues diretamente. Possibilita que os View Controllers sejam criados externos ao Storyboard, e este seja utilizado apenas para o fluxo. Facilmente feito ao se deletar a root view. Sim, apenas isso mesmo. Porém, ainda impõe o uso de segues. UIViewControllerProxy não suporta ser nomeado (Identity/Storyboard ID).
  5. Flow Coordinator Abstrai um fluxo lógico no qual cada etapa

    é um View Controller. O Flow Coordinator é o delegate de todos os View Controllers envolvidos no fluxo que ele coordena. O Flow Coordinator executa as segues e injeta os valores adequados a cada View Controller. O View Controller não precisa conhecer o fluxo ou os demais View Controllers envolvidos.
  6. Sobre a Demonstração Todos os View Controllers foram criados como

    .xib - externos aos Storyboards no qual são utilizados. Foi utilizado um Storyboard para cada Flow. Um Flow principal, “NewUserFlow”, pode iniciar um dos seguintes SubFlows: “NewUserPFFlowCoordinator” Se for selecionado “Pessoa Física" “NewUserPJFlowCoordinator" Se for selecionado “Pessoa Jurídica"
  7. Sobre a Demonstração (cont.) A diferença entre o Flow e

    SubFlow é meramente conceitual. Cada FlowCoordinator possui seu Storyboard. NewUserFlowCoordinator : NewUserFlow.storyboard NewUserPFFlowCoordinator : NewUserPFFlow.storyboard NewUserPJFlowCoordinator : NewUserPJFlow.storyboard NewUserPFFlowCoordinator e NewUserPJFlowCoordinator compartilham os View Controllers UserAddressViewController e UserConfirmationViewController.
  8. Referências Externas "Todo View Controller deveria ter um delegate" http:/

    /invariante.com/2015/10/20/todo-view-controller-deveria-ter- delegate/
  9. www.concretesolutions.com.br blog.concretesolutions.com.br Rio de Janeiro – Rua São José, 90

    – cj. 2121 Centro – (21) 2240-2030 São Paulo - Rua Sansão Alves dos Santos, 433
 4º andar - Brooklin - (11) 4119-0449